HGScannerLib c# demo增加二值图和灰度图的处理

This commit is contained in:
luoliangyi 2023-01-13 11:21:56 +08:00
parent 43c43a2616
commit 4debf9c4c9
1 changed files with 45 additions and 14 deletions

View File

@ -43,7 +43,37 @@ namespace WindowsFormsApp1
imageInfo.origin = 0; imageInfo.origin = 0;
HGScannerLib.HGLib_GetImageInfo(image, ref imageInfo); HGScannerLib.HGLib_GetImageInfo(image, ref imageInfo);
Bitmap curBitmap = new Bitmap((int)imageInfo.width, (int)imageInfo.height, System.Drawing.Imaging.PixelFormat.Format24bppRgb); Bitmap curBitmap = null;
if (imageInfo.type == 1) // BINARY
{
curBitmap = new Bitmap((int)imageInfo.width, (int)imageInfo.height, (int)imageInfo.widthStep,
System.Drawing.Imaging.PixelFormat.Format1bppIndexed, imageData);
System.Drawing.Imaging.ColorPalette palette = curBitmap.Palette;
palette.Entries[0] = Color.FromArgb(0, 0, 0);
palette.Entries[1] = Color.FromArgb(255, 255, 255);
curBitmap.Palette = palette;
}
else if (imageInfo.type == 2) // GRAY
{
curBitmap = new Bitmap((int)imageInfo.width, (int)imageInfo.height, (int)imageInfo.widthStep,
System.Drawing.Imaging.PixelFormat.Format8bppIndexed, imageData);
System.Drawing.Imaging.ColorPalette palette = curBitmap.Palette;
for (int i = 0; i < palette.Entries.Length; i++)
{
palette.Entries[i] = Color.FromArgb(i, i, i);
}
curBitmap.Palette = palette;
}
else if (imageInfo.type == 3) // BGR
{
curBitmap = new Bitmap((int)imageInfo.width, (int)imageInfo.height, (int)imageInfo.widthStep,
System.Drawing.Imaging.PixelFormat.Format24bppRgb, imageData);
}
else if (imageInfo.type == 4) // RGB
{
curBitmap = new Bitmap((int)imageInfo.width, (int)imageInfo.height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Rectangle rect = new Rectangle(0, 0, (int)imageInfo.width, (int)imageInfo.height); Rectangle rect = new Rectangle(0, 0, (int)imageInfo.width, (int)imageInfo.height);
@ -63,6 +93,7 @@ namespace WindowsFormsApp1
} }
} }
curBitmap.UnlockBits(bmpData); curBitmap.UnlockBits(bmpData);
}
curBitmap.Save("3.jpg"); curBitmap.Save("3.jpg");