.NET 응용 프로그램에서 PowerPoint 프레젠테이션을 처리하는 동안 PPT 슬라이드에서 콘텐츠를 추출해야 할 수 있습니다. 내용은 텍스트와 이미지의 형태일 수 있습니다. 이전 게시물에서는 PowerPoint 슬라이드에서 텍스트 추출에 대해 다루었습니다. 이 기사에서는 C#의 PowerPoint PPT 또는 PPTX에서 이미지를 추출하는 방법을 보여줍니다.
PowerPoint PPT에서 이미지를 추출하는 C# .NET API
PowerPoint PPT/PPTX에서 이미지를 추출하기 위해 Aspose.Slides for .NET을 사용합니다. 새로운 프레젠테이션을 만들고 기존 프레젠테이션을 원활하게 조작할 수 있는 기능이 풍부한 .NET API입니다. API의 DLL을 다운로드하거나 NuGet을 사용하여 설치할 수 있습니다.
PM> Install-Package Aspose.Slides.NET
C#의 PowerPoint PPT에서 이미지 추출
다음은 C#에서 PPT 프레젠테이션의 모든 이미지를 추출하는 단계입니다.
- 먼저 Presentation 클래스를 사용하여 PPT/PPTX 파일을 로드합니다.
- 그런 다음 Presentation.Images 컬렉션을 사용하여 프레젠테이션의 모든 이미지를 반복합니다.
- 마지막으로 각 이미지의 유형과 형식을 가져와서 저장합니다.
다음 코드 샘플은 C#의 PowerPoint PPT에서 이미지를 추출하는 방법을 보여줍니다.
// 프레젠테이션 로드
Presentation pres = new Presentation("presentation.pptx");
Aspose.Slides.IPPImage img = null;
ImageFormat format = System.Drawing.Imaging.ImageFormat.Jpeg;
int imageIndex = 1;
string imageType = "";
String imagePath = "Image_";
// 이미지 반복
foreach (var image in pres.Images)
{
// 이미지 형식 가져오기
format = GetImageFormat(image.ContentType);
// 이미지 유형 가져오기
imageType = image.ContentType;
imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
// 이미지를 저장
image.SystemImage.Save(imagePath + "Slide_" + imageIndex.ToString() + "." + imageType, format);
imageIndex++;
}
PPT의 모양에서 이미지 추출
다양한 경우에 모양 개체에서만 이미지를 추출해야 할 수도 있습니다. 아래 단계에 따라 수행할 수 있습니다.
- 먼저 Presentation 클래스를 사용하여 프레젠테이션 파일을 로드합니다.
- 그런 다음 Presentation.Slides 컬렉션을 사용하여 슬라이드를 반복합니다.
- 각 슬라이드에 대해 ISlide.Shapes 컬렉션을 사용하여 해당 모양에 액세스합니다.
- 컬렉션의 각 모양에 대해 다음 단계를 수행합니다.
- 도형이 자동 도형이고 그림으로 채워져 있는 경우 IShape.FillFormat.PictureFillFormat.Picture.Image 속성을 사용하여 이미지를 추출합니다.
- 도형이 액자인 경우 IPictureFrame.PictureFormat.Picture.Image 속성을 사용하여 이미지를 추출합니다.
- 마지막으로 이미지를 파일로 저장합니다.
다음 코드 샘플은 C#을 사용하여 PPT의 모양에서 이미지를 추출하는 방법을 보여줍니다.
// 프레젠테이션 로드
Presentation pres = new Presentation("presentation.pptx");
Aspose.Slides.IPPImage img = null;
int slideIndex = 0;
String imageType = "";
bool isImageFound = false;
// 슬라이드 반복
for (int i = 0; i < pres.Slides.Count; i++)
{
slideIndex++;
// 슬라이드에 액세스
ISlide slide = pres.Slides[i];
System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Jpeg;
// 모양을 반복
for (int j = 0; j < slide.Shapes.Count; j++)
{
// 도형에 액세스
IShape sh = slide.Shapes[j];
// 자동 모양인지 확인하십시오.
if (sh is AutoShape)
{
AutoShape ashp = (AutoShape)sh;
// 사진이 있는지 확인
if (ashp.FillFormat.FillType == FillType.Picture)
{
// 이미지 가져오기
img = ashp.FillFormat.PictureFillFormat.Picture.Image;
imageType = img.ContentType;
imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
isImageFound = true;
}
}
else if (sh is PictureFrame)
{
// 모양이 액자라면
IPictureFrame pf = (IPictureFrame)sh;
// 사진이 포함되어 있는지 확인
if (pf.FillFormat.FillType == FillType.Picture)
{
// 이미지 가져오기
img = pf.PictureFormat.Picture.Image;
imageType = img.ContentType;
imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
isImageFound = true;
}
}
// 이미지를 찾으면 저장하십시오
if (isImageFound)
{
format = GetImageFormat(imageType);
String imagePath = "Image_";
img.SystemImage.Save(imagePath + "Slide_" + slideIndex.ToString() + "_Shape_" + j.ToString() + "." + imageType, format);
}
isImageFound = false;
}
}
C#의 슬라이드 배경에서 이미지 추출
또 다른 가능한 시나리오는 슬라이드 배경으로만 사용되는 이미지를 추출하는 것입니다. 다음 단계는 C#에서 슬라이드 배경 이미지를 추출하는 방법을 보여줍니다.
- 먼저 Presentation 클래스를 이용하여 PPT/PPTX 파일을 불러옵니다.
- 그런 다음 Presentation.Slides 컬렉션을 사용하여 프레젠테이션의 슬라이드를 반복합니다.
- 각 슬라이드에 대해 다음 단계를 수행합니다.
- ISlide.Background.FillFormat.FillType 속성을 사용하여 슬라이드에 배경 이미지가 있는지 확인합니다.
- 배경에 그림이 있는 경우 Background.FillFormat.PictureFillFormat.Picture.Image 속성을 사용하여 이미지를 추출합니다.
- LayoutSlide.Background.FillFormat.FillType 속성을 사용하여 레이아웃 슬라이드에 배경 이미지가 있는지 확인합니다.
- 레이아웃 슬라이드의 배경이 그림으로 채워져 있으면 ISlide.LayoutSlide.Background.FillFormat.PictureFillFormat.Picture.Image 속성을 사용하여 추출합니다.
- 마지막으로 추출된 이미지를 파일로 저장합니다.
다음 코드 샘플은 C#에서 PPT의 슬라이드 배경에서 이미지를 추출하는 방법을 보여줍니다.
// 프레젠테이션 로드
Presentation pres = new Presentation("presentation.pptx");
Aspose.Slides.IPPImage backImg = null;
int slideIndex = 0;
String imageType = "";
for (int i = 0; i < pres.Slides.Count; i++)
{
slideIndex++;
// 슬라이드에 액세스
ISlide slide = pres.Slides[i];
System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Jpeg;
// 배경에 그림이 있는지 확인
if (slide.Background.FillFormat.FillType == FillType.Picture)
{
// 사진 가져오기
backImg = slide.Background.FillFormat.PictureFillFormat.Picture.Image;
// 그림 형식 설정
imageType = backImg.ContentType;
imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
format = GetImageFormat(imageType);
// 이미지를 저장
String imagePath = "BackImage_";
backImg.SystemImage.Save(imagePath + "Slide_" + slideIndex.ToString() + "." + imageType, format);
}
else
{
if (slide.LayoutSlide.Background.FillFormat.FillType == FillType.Picture)
{
// 배경 사진 가져오기
backImg = slide.LayoutSlide.Background.FillFormat.PictureFillFormat.Picture.Image;
// 그림 형식 설정
imageType = backImg.ContentType;
imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
format = GetImageFormat(imageType);
// 이미지를 저장
String imagePath = "BackImage_Slide_" + i;
backImg.SystemImage.Save(imagePath + "LayoutSlide_" + slideIndex.ToString() + "." + imageType, format);
}
}
}
위의 모든 코드 조각에서 GetImageFormat 메서드를 사용했습니다. 이 메서드는 제공된 유형에 대한 적절한 이미지 형식을 반환합니다. 이 방법의 구현은 아래에 나와 있습니다.
public static System.Drawing.Imaging.ImageFormat GetImageFormat(String ImageType)
{
System.Drawing.Imaging.ImageFormat Format = System.Drawing.Imaging.ImageFormat.Jpeg;
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;
}
return Format;
}
무료 라이선스 받기
평가 제한 없이 Aspose.Slides for .NET을 사용할 수 있는 무료 임시 라이선스를 얻을 수 있습니다.
결론
이 기사에서는 C#의 PowerPoint PPT/PPTX에서 이미지를 추출하는 방법을 배웠습니다. 코드 샘플의 도움으로 모양과 슬라이드 배경에서 이미지를 추출하는 방법을 시연했습니다. 문서를 방문하여 .NET용 Aspose.Slides에 대해 자세히 알아볼 수 있습니다. 또한 포럼을 통해 질문할 수 있습니다.