+允许提取灰度掩膜图像

This commit is contained in:
WMJ
2023-01-18 19:29:36 +08:00
parent eda248e39a
commit 4c4adb386f
2 changed files with 6 additions and 13 deletions
+3 -8
View File
@@ -164,21 +164,16 @@ namespace PDFPatcher.Processor
var fileName = GetNewImageFileName();
if (info.ExtName == Constants.FileExtensions.Png
|| info.ExtName == Constants.FileExtensions.Tif
//|| info.MaskBytes != null
) {
SaveBitmap(info, bytes, fileName);
}
else {
SaveImageBytes(info, bytes, fileName);
}
if (info.MaskBytes != null) {
using (var m = new FreeImageBitmap(
info.MaskSize.Width, info.MaskSize.Height,
(info.MaskSize.Width + 7) / 8, PixelFormat.Format1bppIndexed,
info.MaskBytes)) {
//var r = bmp.Composite (false, null, m);
if (info.Mask != null) {
using (var m = info.Mask) {
m.Palette.CreateGrayscalePalette();
m.Save(fileName + "[mask]" + Constants.FileExtensions.Tif);
m.Save($"{fileName}[mask]{(info.Mask.PixelFormat == PixelFormat.Format1bppIndexed ? Constants.FileExtensions.Tif : Constants.FileExtensions.Png)}");
}
}
_totalImageCount++;
+3 -5
View File
@@ -26,8 +26,7 @@ namespace PDFPatcher.Processor.Imaging
public PdfName PaletteColorSpace { get; private set; }
public byte[] PaletteBytes { get; private set; }
public byte[] ICCProfile { get; private set; }
public Size MaskSize { get; private set; }
public byte[] MaskBytes { get; private set; }
public FreeImageBitmap Mask { get; private set; }
public int PaletteEntryCount { get; private set; }
public RGBQUAD[] PaletteArray { get; private set; }
public PdfImageData InlineImage { get; private set; }
@@ -200,9 +199,8 @@ namespace PDFPatcher.Processor.Imaging
) {
var mi = new ImageInfo(sm);
var mask = DecodeImage(mi, new ImageExtracterOptions() { InvertBlackAndWhiteImages = !options.InvertSoftMask });
if (mask != null && mi.BitsPerComponent == 1) {
info.MaskBytes = mask;
info.MaskSize = new Size(mi.Width, mi.Height);
if (mask != null) {
info.Mask = ImageExtractor.CreateFreeImageBitmap(mi, ref mask, options.VerticalFlipImages, false);
}
}
return decodedBytes;