我正在使用采用位图并将其转换为 24 BPP 的代码,以便我可以在特别需要该文件格式的程序中使用它。这是代码:
using (Bitmap tempImage = new Bitmap(pageToScan.FullPath))
{
if (tempImage.PixelFormat != System.Drawing.Imaging.PixelFormat.Format24bppRgb)
{
using (Bitmap tempImage2 = new Bitmap(tempImage.Size.Width, tempImage.Size.Height,
System.Drawing.Imaging.PixelFormat.Format24bppRgb))
{
using (Graphics g = Graphics.FromImage(tempImage2))
{
g.DrawImage(tempImage, new Point(0, 0));
}
RecognizeBitmap(pageToScan, tempImage2); //Thanks to Tim on this refactoring.
}
}
else
RecognizeBitmap(pageToScan, tempImage);
}
我对上面的代码有两个问题:
- 对于一个特定的图像,我认为这会从 tempImage2 中剪掉最右边的 200 个像素。这可能吗?这怎么可能发生,我该如何阻止它?我的一个朋友建议这可能与正在使用的 TIFF 文件的步幅有关。
- 有没有更快的方法将图像转换为内存中的 24 BPP?