diff --git a/CSRender/CSRender.cs b/CSRender/CSRender.cs
index 25f739e3b718c7400b0d2d64260c5533453d437e..ec648143a5c6cf5aa15190d607b970d766f8949a 100644
--- a/CSRender/CSRender.cs
+++ b/CSRender/CSRender.cs
@@ -170,6 +170,41 @@ namespace CSRender {
return pageCount;// ページ数を返却します
}
///
+ /// imageをRGB3チェンネルbitmapにRenderingする
+ ///
+ ///
+ public static System.Drawing.Bitmap RenderRgbBitMap(
+ PdfiumViewer.PdfDocument docG,
+ int index,
+ double dpiX,
+ double dpiY,
+ PdfRenderFlags flg
+ ){
+ var bitmap = docG.Render(index, (float)dpiX, (float)dpiY, flg) as System.Drawing.Bitmap;
+ if (bitmap.PixelFormat == System.Drawing.Imaging.PixelFormat.Format24bppRgb)
+ return bitmap;
+ //
+ var cloneRect = new System.Drawing.RectangleF(0, 0, bitmap.Size.Width, bitmap.Size.Height);
+ var format = System.Drawing.Imaging.PixelFormat.Format24bppRgb;
+ var clonebitmap = bitmap.Clone(cloneRect, format);
+ //
+ //bitmap.Dispose();
+ return clonebitmap;
+ /*
+ 保存時にBitmapのクローンを作成し、その際のBitmapの形式に24bitRGB(PixelFormat.Format24bppRgb)を
+ 指定し3版RGBTiffを出力します。
+ System.Drawing.Imaging.PixelFormat format = PixelFormat.Format24bppRgb;
+ clonebitmap = bitmap1.Clone(cloneRect, format);
+ ref:
+ https://maywork.net/computer/csharp_convert_to_format32bppargb/
+ https://www.webdevqa.jp.net/ja/c%23/c%EF%BC%83%E3%81%A7%E3%81%AE%E3%83%93%E3%83%83%E3%83%88%E3%83%9E%E3%83%83%E3%83%97pixelformats%E3%81%AE%E5%A4%89%E6%8F%9B/968763414/
+ https://gist.github.com/nissuk/888601/ee0943dd0d35dc9c6b47358b9e1a89af8cc9898b
+ https://stackoverflow.com/questions/28448474/render-pdf-page-to-bitmap-using-pdfium
+ https://qiita.com/Nuits/items/4a2fbc0f4e8583bd5531
+ PixelFormat dump https://maywork.net/computer/csharp_convert_to_format32bppargb/
+ */
+ }
+ ///
/// pdfのページを画像に出力する
///
/// PdfDocument
@@ -193,9 +228,8 @@ namespace CSRender {
using (var memStrm = new MemoryStream()) {
PdfRenderFlags flg = (PdfRenderFlags.ForPrinting | PdfRenderFlags.CorrectFromDpi);
- using(var img = docG.Render(index, (float)pm.Dpi, (float)pm.Dpi, flg)){
+ using(var img = RenderRgbBitMap(docG, index, (float)pm.Dpi, (float)pm.Dpi, flg) ){
img.Save(memStrm, System.Drawing.Imaging.ImageFormat.Bmp);
- //img.Save(memStrm, System.Drawing.Imaging.ImageFormat.Jpeg);
/*
// ImageFormatJPEGの時
dpi = 350,TIFF
@@ -225,7 +259,7 @@ namespace CSRender {
img.Dispose();
}
var bmp = new System.Drawing.Bitmap(memStrm);
- if (bDump) {
+ if (bDump) {
echo($"bmp=w:{bmp.Size.Width},h:{bmp.Size.Height}");
}
//Console.WriteLine($"OrgReso({bmp.HorizontalResolution},{bmp.VerticalResolution})");
@@ -461,7 +495,7 @@ namespace CSRender {
if (pm == null)
pm = new RenderConditionParams();
PdfRenderFlags flg = (PdfRenderFlags.ForPrinting | PdfRenderFlags.CorrectFromDpi);
- System.Drawing.Image img = docG.Render(index, (float)pm.Dpi, (float)pm.Dpi, flg);
+ System.Drawing.Image img =RenderRgbBitMap(docG, index, (float)pm.Dpi, (float)pm.Dpi, flg);
img.Save(memStrm, System.Drawing.Imaging.ImageFormat.Bmp);
//img.Save(memStrm, System.Drawing.Imaging.ImageFormat.Jpeg);
// [注意] PDFuim用にFlush()必要
diff --git a/CSRender/Properties/AssemblyInfo.cs b/CSRender/Properties/AssemblyInfo.cs
index fe94bcfe91d4c0718494aa0b7fd8b64e61a1171d..6e3a7da35507cbf4bfecdbc5565997ab3bbb2c2d 100644
--- a/CSRender/Properties/AssemblyInfo.cs
+++ b/CSRender/Properties/AssemblyInfo.cs
@@ -33,11 +33,13 @@ using System.Runtime.InteropServices;
// すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます
// 既定値にすることができます:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.3.1.0")]
-[assembly: AssemblyFileVersion("1.3.1.0")]
+[assembly: AssemblyVersion("1.3.2.0")]
+[assembly: AssemblyFileVersion("1.3.2.0")]
[assembly: NeutralResourcesLanguage("ja")]
-// rev:1.3.1.x:2021/10/05 :不要コード削除(Windows.Data.pdf)
+
+// rev:1.3.2.0:2021/12/20 :aRGB4チャンネル保存からRGB3チャンネルに変更
+// rev:1.3.1.0:2021/10/05 :不要コード削除(Windows.Data.pdf)
// rev:1.3.0.5:2021/09/14 :/Paraで並行プロセス最大値の設定追加
// rev:1.3.0.4:2021/04/29 :Helpの記述抜け "/Result"の対応
// rev:1.3.0.3:2020/11/22 :/Result <比較結果> を実装。diff画像を出力
diff --git a/CSRender_ReadMe.txt b/CSRender_ReadMe.txt
index 59aea8cf975a7b118227f0c6860b0f49a64fee64..867f15503164cddbb35e8d815f60e0c72611bc46 100644
--- a/CSRender_ReadMe.txt
+++ b/CSRender_ReadMe.txt
@@ -1,3 +1,4 @@
+V1.3.2.0:2021/12/20 :aRGB4`lۑRGB3`lɕύX
V1.3.1.0:2021/10/04 :UWPpAData.pdf̍폜A
* UWPpR[h폜Bʏ̃t@CANZXMemoryStreamɕύX
* Widnows RT Windows.Data.pdf̎gp폜.PDFium݂̂Ƃ
diff --git a/bin/Release/CSRender.exe b/bin/Release/CSRender.exe
index 006e3d54e5871083a3d43097fe0df579a38e99a7..f919e8b19a4d836cfc8d6140ec2e6bcd24fc0389 100644
Binary files a/bin/Release/CSRender.exe and b/bin/Release/CSRender.exe differ