C#/VB.NET實(shí)現(xiàn)從PPT中提取圖片的示例代碼
PowerPoint是用于制作幻燈片(演示文稿)的應(yīng)用軟件,每張幻燈片中都可以包含文字、圖形、圖形、表格、聲音和影像等多種信息。有時(shí)候我們發(fā)現(xiàn)在PPT里面有一些精美的圖片,或者其他原因想要把PPT里面的圖片保存下來(lái)。但如果PowerPoint文檔中包含大量圖片,一張張保存未免太費(fèi)時(shí)間及精力。那有什么辦法可以高效便捷地提取出PPT中的圖片呢?在這篇文章中,您將學(xué)習(xí)如何以編程方式從PowerPoint文檔中提取圖片。下面是我整理的步驟及方法,并附上C#/VB.NET代碼供大家參考。
- 從整個(gè)演示文稿中提取圖像
- 從特定演示幻燈片中提取圖像
程序環(huán)境
本次測(cè)試時(shí),在程序中引入 Free Spire.Presentation.dll 文件。
方法1:
將?Free Spire.Presentation for .NET?? 下載到本地,解壓,找到 BIN 文件夾下的 Spire.Presentation.dll。然后在 Visual Studio 中打開(kāi)“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“添加引用”,將本地路徑 BIN 文件夾下的 dll 文件添加引用至程序。
方法2::
通過(guò) ?NuGet??安裝??赏ㄟ^(guò)以下 2 種方法安裝:
1. 可以在 Visual Studio 中打開(kāi)“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“管理 NuGet 包”,然后搜索“Free Spire.Presentation”,點(diǎn)擊“安裝”。等待程序安裝完成。
2. 將以下內(nèi)容復(fù)制到 PM 控制臺(tái)安裝。
Install-Package FreeSpire.Presentation -Version 7.8
從整個(gè)演示文稿中提取圖像
- 初始化 Presentation 類(lèi)的一個(gè)實(shí)例。
- 使用 Presentation.LoadFromFile() 方法加載 PowerPoint 演示文稿。
- 通過(guò) Presentation.Images 屬性獲取演示文稿中所有圖片的集合。
- 遍歷集合,調(diào)用ImageCollection[int].Image.Save()方法將集合中的圖片保存到圖片文件中。
完整代碼
C#
using Spire.Presentation;
using Spire.Presentation.Collections;
using System.Drawing;
namespace ExtractImagesFromPresentation
{
internal class Program
{
static void Main(string[] args)
{
//初始化Presentation類(lèi)的實(shí)例
Presentation ppt = new Presentation();
//加載PowerPoint演示文稿
ppt.LoadFromFile("示例文檔.pptx");
//獲取演示文稿的圖像集
ImageCollection imageCollection = ppt.Images;
//遍歷集合中的圖像
for (int i = 0; i < imageCollection.Count; i++)
{
//提取圖像
imageCollection[i].Image.Save(string.Format("Presentation\\圖片{0}.png", i));
}
ppt.Dispose();
}
}
}VB.NET
Imports Spire.Presentation
Imports Spire.Presentation.Collections
Namespace ExtractImagesFromPresentation
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'初始化Presentation類(lèi)的實(shí)例
Dim ppt As Presentation = New Presentation()
'加載PowerPoint演示文稿
ppt.LoadFromFile("示例文檔.pptx")
'獲取演示文稿的圖像集
Dim imageCollection As ImageCollection = ppt.Images
'遍歷集合中的圖像
For i As Integer = 0 To imageCollection.Count - 1
'提取圖像
imageCollection(i).Image.Save(String.Format("Presentation\圖片{0}.png", i))
Next
ppt.Dispose()
End Sub
End Class
End Namespace效果圖

從特定演示幻燈片中提取圖像
- 初始化 Presentation 類(lèi)的一個(gè)實(shí)例。
- 使用 Presentation.LoadFromFile() 方法加載 PowerPoint 演示文稿。
- 通過(guò) Presentation.Slides[int] 屬性按索引獲取特定幻燈片。
- 遍歷幻燈片上的所有形狀。
- 檢查形狀是否為 SlidePicture 或 PictureShape 類(lèi)型。 如果結(jié)果為真,則使用 SlidePicture.PictureFill.Picture.EmbedImage.Image.Save()或 PictureShape.EmbedImage.Image.Save() 方法將圖像保存到圖像文件。
完整代碼
C#
using Spire.Presentation;
namespace ExtractImagesFromSlide
{
internal class Program
{
static void Main(string[] args)
{
//初始化 Presentation 類(lèi)的一個(gè)實(shí)例
Presentation ppt = new Presentation();
//加載 PowerPoint 演示文稿
ppt.LoadFromFile("示例文檔.pptx");
//獲取指定幻燈片
ISlide slide = ppt.Slides[1];
int i = 0;
//遍歷指定幻燈片上的所有形狀
foreach (IShape s in slide.Shapes)
{
//檢查形狀是否為SlidePicture類(lèi)型
if (s is SlidePicture)
{
//提取圖像
SlidePicture ps = s as SlidePicture;
ps.PictureFill.Picture.EmbedImage.Image.Save(string.Format(@"D:\.NET\提取圖片\bin\Debug\Slide\圖像{0}.png", i));
i++;
}
//檢查形狀是否為 PictureShape 類(lèi)型
if (s is PictureShape)
{
//提取圖像
PictureShape ps = s as PictureShape;
ps.EmbedImage.Image.Save(string.Format(@"D:\.NET\提取圖片\bin\Debug\Slide\圖像{0}.png", i));
i++;
}
}
}
}
}VB.NET
Imports Spire.Presentation
Namespace ExtractImagesFromSlide
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'初始化 Presentation 類(lèi)的一個(gè)實(shí)例
Dim ppt As Presentation = New Presentation()
'加載 PowerPoint 演示文稿
ppt.LoadFromFile("示例文檔.pptx")
'獲取指定幻燈片
Dim slide As ISlide = ppt.Slides(1)
Dim i = 0
'遍歷指定幻燈片上的所有形狀
For Each s As IShape In slide.Shapes
'檢查形狀是否為SlidePicture類(lèi)型
If TypeOf s Is SlidePicture Then
'提取圖像
Dim ps As SlidePicture = TryCast(s, SlidePicture)
ps.PictureFill.Picture.EmbedImage.Image.Save(String.Format("D:\.NET\提取圖片\bin\Debug\Slide\圖像{0}.png", i))
i += 1
End If
'檢查形狀是否為 PictureShape 類(lèi)型
If TypeOf s Is PictureShape Then
'提取圖像
Dim ps As PictureShape = TryCast(s, PictureShape)
ps.EmbedImage.Image.Save(String.Format("D:\.NET\提取圖片\bin\Debug\Slide\圖像{0}.png", i))
i += 1
End If
Next
End Sub
End Class
End Namespace效果圖

到此這篇關(guān)于C#/VB.NET實(shí)現(xiàn)從PPT中提取圖片的示例代碼的文章就介紹到這了,更多相關(guān)C# PPT提取圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#如何優(yōu)雅的對(duì)WinForm窗體應(yīng)用程序進(jìn)行權(quán)限控制
經(jīng)常會(huì)出現(xiàn)winfrom頁(yè)面需要加載權(quán)限樹(shù),下面這篇文章主要給大家介紹了關(guān)于C#如何優(yōu)雅的對(duì)WinForm窗體應(yīng)用程序進(jìn)行權(quán)限控制的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
C#代碼實(shí)現(xiàn)PDF文檔操作類(lèi)
本篇文章給大家介紹使用pdf文檔操作C#代碼,本文代碼非常簡(jiǎn)單,代碼附有注釋?zhuān)枰⒁獾氖牵盒枰砑觟textsharp.dll引用才可以正常通過(guò)編譯,感興趣的朋友可以參考下2015-10-10
C#驗(yàn)證身份證號(hào)碼正確性的實(shí)例代碼(收藏)
這篇文章主要介紹了C#驗(yàn)證身份證號(hào)碼正確性的實(shí)例代碼,包括18位號(hào)碼和15位號(hào)碼的校驗(yàn),需要的朋友可以參考下2017-07-07
C#使用CefSharp自定義緩存實(shí)現(xiàn)
本文介紹了如何使用C#和CefSharp自定義緩存實(shí)現(xiàn)減少Web應(yīng)用程序的網(wǎng)絡(luò)請(qǐng)求,提高應(yīng)用程序性能。首先,本文講解了CefSharp的基本知識(shí)和使用方法。然后,詳細(xì)闡述了在CefSharp中實(shí)現(xiàn)自定義緩存的步驟和技巧。最后,通過(guò)實(shí)例演示了如何使用自定義緩存功能獲取并展示網(wǎng)頁(yè)數(shù)據(jù)2023-04-04
C#控制臺(tái)程序?qū)崿F(xiàn)開(kāi)啟、關(guān)閉SQLServer服務(wù)的代碼分享
這篇文章主要介紹了C#控制臺(tái)程序?qū)崿F(xiàn)開(kāi)啟、關(guān)閉SQLServer服務(wù)的代碼分享,需要的朋友可以參考下2014-05-05
Winform?控件優(yōu)化LayeredWindow無(wú)鋸齒圓角窗體
這篇文章主要為大家介紹了Winform?控件優(yōu)化LayeredWindow實(shí)現(xiàn)無(wú)鋸齒圓角窗體示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09

