Skip to content

Commit 4c4adb3

Browse files
committed
+允许提取灰度掩膜图像
1 parent eda248e commit 4c4adb3

File tree

2 files changed

+6
-13
lines changed

2 files changed

+6
-13
lines changed

App/Processor/ImageExtractor.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -164,21 +164,16 @@ internal void ExtractImage(ImageInfo info) {
164164
var fileName = GetNewImageFileName();
165165
if (info.ExtName == Constants.FileExtensions.Png
166166
|| info.ExtName == Constants.FileExtensions.Tif
167-
//|| info.MaskBytes != null
168167
) {
169168
SaveBitmap(info, bytes, fileName);
170169
}
171170
else {
172171
SaveImageBytes(info, bytes, fileName);
173172
}
174-
if (info.MaskBytes != null) {
175-
using (var m = new FreeImageBitmap(
176-
info.MaskSize.Width, info.MaskSize.Height,
177-
(info.MaskSize.Width + 7) / 8, PixelFormat.Format1bppIndexed,
178-
info.MaskBytes)) {
179-
//var r = bmp.Composite (false, null, m);
173+
if (info.Mask != null) {
174+
using (var m = info.Mask) {
180175
m.Palette.CreateGrayscalePalette();
181-
m.Save(fileName + "[mask]" + Constants.FileExtensions.Tif);
176+
m.Save($"{fileName}[mask]{(info.Mask.PixelFormat == PixelFormat.Format1bppIndexed ? Constants.FileExtensions.Tif : Constants.FileExtensions.Png)}");
182177
}
183178
}
184179
_totalImageCount++;

App/Processor/Imaging/ImageInfo.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ internal sealed class ImageInfo
2626
public PdfName PaletteColorSpace { get; private set; }
2727
public byte[] PaletteBytes { get; private set; }
2828
public byte[] ICCProfile { get; private set; }
29-
public Size MaskSize { get; private set; }
30-
public byte[] MaskBytes { get; private set; }
29+
public FreeImageBitmap Mask { get; private set; }
3130
public int PaletteEntryCount { get; private set; }
3231
public RGBQUAD[] PaletteArray { get; private set; }
3332
public PdfImageData InlineImage { get; private set; }
@@ -200,9 +199,8 @@ private static byte[] DecodeImage(ImageInfo info, ImageExtracterOptions options)
200199
) {
201200
var mi = new ImageInfo(sm);
202201
var mask = DecodeImage(mi, new ImageExtracterOptions() { InvertBlackAndWhiteImages = !options.InvertSoftMask });
203-
if (mask != null && mi.BitsPerComponent == 1) {
204-
info.MaskBytes = mask;
205-
info.MaskSize = new Size(mi.Width, mi.Height);
202+
if (mask != null) {
203+
info.Mask = ImageExtractor.CreateFreeImageBitmap(mi, ref mask, options.VerticalFlipImages, false);
206204
}
207205
}
208206
return decodedBytes;

0 commit comments

Comments
 (0)