Как мне получить встроенное изображение в формате PNG из файла Microsoft Word?

#c# #ms-office #aspose

#c# #ms-office #аспозе

Вопрос:

Я использовал этот код для извлечения изображения из файла Word:

 Document doc = new Document(MyDir   "Image.SampleImages.doc");

    NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true, false);
    int imageIndex = 0;           
    foreach (Shape shape in shapes)
    {
        if (shape.HasImage)
        {
            string imageFileName = string.Format(
                "Image.ExportImages.{0} Out{1}", imageIndex, FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType));
            shape.ImageData.Save(MyDir   imageFileName);
            imageIndex  ;
        }
    }
 

Выходной формат изображения — .emf, тогда как я хочу, чтобы он был .png. Пожалуйста, скажите мне, как приведенный выше код можно использовать для получения формата «PNG» вместо EMF.

Комментарии:

1. вы должны упомянуть, что используете это: aspose.com/documentation/.net-components/aspose.words-for-.net /…

Ответ №1:

Это связано с тем, что свойство ImageType Aspose ImageData является исходным форматом изображения и не изменяется при сохранении. Вместо этого вы должны получить объект изображения из ImageData (используя toImage), а затем сохранить его в нужном формате. Т.е.:

         shape.ImageData.ToImage().Save(MyDir   imageIndex.ToString()   ".png", System.Drawing.Imaging.ImageFormat.Png);