Отображение форм на слайде как изображений
Contents
[
Hide
]
Это охватывает две основные функции:
- Извлечение изображения из формы в файл.
- Извлечение форм как файла изображения.
Извлечение изображения из формы в файл
Изображения добавляются на фон слайда и формы. Иногда необходимо извлечь изображения, добавленные в формы презентации.
В Aspose.Slides для .NET изображения могут быть добавлены в форму слайда и фон слайда. Изображения добавляются в ImageCollectionEx презентации. В этом примере мы пройдемся по каждой форме внутри каждого слайда презентации и посмотрим, есть ли какое-либо изображение, добавленное в форму слайда. Если для какой-либо формы будет найдено изображение, мы извлечем его и сохраним в файл. Следующий фрагмент кода служит этой цели.
//Доступ к презентации
PresentationEx pres = new PresentationEx("RenderImageFromShape.pptx");
ImageEx img = null;
int slideIndex = 0;
String ImageType = "";
bool ifImageFound = false;
for (int i = 0; i < pres.Slides.Count; i++)
{
slideIndex++;
//Доступ к первому слайду
SlideEx sl = pres.Slides[i];
System.Drawing.Imaging.ImageFormat Format = System.Drawing.Imaging.ImageFormat.Jpeg;
for (int j = 0; j < sl.Shapes.Count; j++)
{
// Доступ к форме с изображением
ShapeEx sh = sl.Shapes[j];
if (sh is AutoShapeEx)
{
AutoShapeEx ashp = (AutoShapeEx)sh;
if (ashp.FillFormat.FillType == FillTypeEx.Picture)
{
img = ashp.FillFormat.PictureFillFormat.Picture.Image;
ImageType = img.ContentType;
ImageType = ImageType.Remove(0, ImageType.IndexOf("/") + 1);
ifImageFound = true;
}
}
else if (sh is PictureFrameEx)
{
PictureFrameEx pf = (PictureFrameEx)sh;
if (pf.FillFormat.FillType == FillTypeEx.Picture)
{
img = pf.PictureFormat.Picture.Image;
ImageType = img.ContentType;
ImageType = ImageType.Remove(0, ImageType.IndexOf("/") + 1);
ifImageFound = true;
}
}
//
//Устанавливаем желаемый формат изображения
if (ifImageFound)
{
switch (ImageType)
{
case "jpeg":
Format = System.Drawing.Imaging.ImageFormat.Jpeg;
break;
case "emf":
Format = System.Drawing.Imaging.ImageFormat.Emf;
break;
case "bmp":
Format = System.Drawing.Imaging.ImageFormat.Bmp;
break;
case "png":
Format = System.Drawing.Imaging.ImageFormat.Png;
break;
case "wmf":
Format = System.Drawing.Imaging.ImageFormat.Wmf;
break;
case "gif":
Format = System.Drawing.Imaging.ImageFormat.Gif;
break;
}
//
img.Image.Save(path+"ResultedImage"+"." + ImageType, Format);
}
ifImageFound = false;
Скачать образец кода
Извлечение форм как файла изображения
//Создание объекта Presentation, который представляет файл PPT
Presentation pres = new Presentation("RenderShapeAsImage.ppt");
//Доступ к слайду с использованием его позиции слайда
Slide slide = pres.GetSlideByPosition(2);
//Итерация по всем формам на слайде и создание миниатюр
ShapeCollection shapes = slide.Shapes;
for (int i = 0; i < shapes.Count; i++)
{
Shape shape = shapes[i];
//Получение миниатюрного изображения формы
Image img = slide.GetThumbnail(new object[] { shape }, 1.0, 1.0, shape.ShapeRectangle);
//Сохранение миниатюрного изображения в формате gif
img.Save(i + ".gif", ImageFormat.Gif);
}
Примечание: Извлечение формы в настоящее время поддерживается в файле .ppt.