mirror of
https://github.com/wmjordan/PDFPatcher.git
synced 2026-10-17 04:41:14 +08:00
+允许提取灰度掩膜图像
This commit is contained in:
@@ -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++;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user