C#/VB.NET?實(shí)現(xiàn)彩色PDF轉(zhuǎn)為灰度PDF
本文以C#代碼為例介紹如何實(shí)現(xiàn)將彩色PDF文件轉(zhuǎn)為灰度(黑白)的PDF文件,即 將PDF文檔里面的彩色圖片或者文字等通過調(diào)用PdfGrayConverter.ToGrayPdf()方法轉(zhuǎn)為文檔頁面為灰色調(diào)、無彩色效果的文檔。下面的程序運(yùn)行環(huán)境及代碼示例。
配置程序環(huán)境
- Visual Studio 2017
- .Net Framework 4.6.1
- Spire.PDF for .NET
關(guān)于如何引入dll文件:
1.通過NuGet安裝dll(2種方法)
1.1可以在Visual Studio中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“管理NuGet包”,然后搜索Spire.PDF安裝。
1.2將以下內(nèi)容復(fù)制到PM控制臺安裝。
Install-Package Spire.PDF -Version 7.11.1
2.手動添加dll引用
可通過手動下載包,然后解壓,找到BIN文件夾下的Spire.Pdf.dll。然后在Visual Studio中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“添加引用”將本地路徑BIN文件夾下的dll文件添加引用至程序。
轉(zhuǎn)彩色PDF為灰度
這里轉(zhuǎn)換主要用到以下步驟:
1.使用 PdfGrayConverter 類加載PDF文件。
2.調(diào)用 PdfGrayConverter.ToGrayPdf() 方法將 PDF 轉(zhuǎn)換為灰度。
C#
using Spire.Pdf.Conversion;
namespace ToGrayPDF
{
class Program
{
static void Main(string[] args)
{
//創(chuàng)建一個PdfGrayConverter實(shí)例并加載文檔
PdfGrayConverter converter = new PdfGrayConverter("sample.pdf");
//將彩色PDF轉(zhuǎn)換為灰度
converter.ToGrayPdf("Grayscale.pdf");
converter.Dispose();
}
}
}
VB.NET
Imports Spire.Pdf.Conversion
Namespace ToGrayPDF
Class Program
Private Shared Sub Main(args As String())
'創(chuàng)建一個PdfGrayConverter實(shí)例并加載文檔
Dim converter As New PdfGrayConverter("sample.pdf")
'將彩色PDF轉(zhuǎn)換為灰度
converter.ToGrayPdf("Grayscale.pdf")
converter.Dispose()
End Sub
End Class
End Namespace
轉(zhuǎn)換結(jié)果

補(bǔ)充
C#也可以實(shí)現(xiàn)彩色圖片轉(zhuǎn)換為灰度圖
代碼如下:
public static Bitmap ChangeGray(Bitmap b)
{
BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite,
PixelFormat.Format24bppRgb);
int stride = bmData.Stride; // 掃描的寬度
unsafe
{
byte* p = (byte*)bmData.Scan0.ToPointer(); // 獲取圖像首地址
int nOffset = stride - b.Width * 3; // 實(shí)際寬度與系統(tǒng)寬度的距離
byte red, green, blue;
for (int y = 0; y < b.Height; ++y)
{
for (int x = 0; x < b.Width; ++x)
{
blue = p[0];
green = p[1];
red = p[2];
p[0] = p[1] = p[2] = (byte)(.299 * red + .587 * green + .114 * blue); // 轉(zhuǎn)換公式
p += 3; // 跳過3個字節(jié)處理下個像素點(diǎn)
}
p += nOffset; // 加上間隔
}
}
b.UnlockBits(bmData); // 解鎖
return b;
}
到此這篇關(guān)于C#/VB.NET 實(shí)現(xiàn)彩色PDF轉(zhuǎn)為灰度PDF 的文章就介紹到這了,更多相關(guān)C#/VB.NET 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#語法糖(Csharp Syntactic sugar)大匯總
首先需要聲明的是“語法糖”這個詞絕非貶義詞,它可以給我?guī)矸奖?,是一種便捷的寫法,編譯器會幫我們做轉(zhuǎn)換;而且可以提高開發(fā)編碼的效率,在性能上也不會帶來損失。這讓java開發(fā)人員羨慕不已,呵呵。2010-06-06
C#使用StructLayout特性來控制內(nèi)存結(jié)構(gòu)的操作代碼
在C#中,內(nèi)存布局對于性能優(yōu)化和與非托管代碼的互操作性至關(guān)重要,StructLayout特性允許開發(fā)者控制結(jié)構(gòu)在內(nèi)存中的布局方式,本文給大家介紹了C#使用StructLayout特性來控制內(nèi)存結(jié)構(gòu)的操作,需要的朋友可以參考下2024-10-10
unity scrollRect實(shí)現(xiàn)按頁碼翻頁效果
這篇文章主要為大家詳細(xì)介紹了unity scrollRect實(shí)現(xiàn)按頁碼翻頁效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04

