画像を印刷できるサーマルプリンターでモノクロームビットマップ画像を印刷していますが、右端に1本の垂直線が印刷されています。(ラインは右上から右下へ約2mmの太さ)
Bitmap image = new Bitmap(imagePath, false);
int imageDepth = System.Drawing.Bitmap.GetPixelFormatSize(image.PixelFormat);
Rectangle monoChromeBitmapRectangle = new Rectangle(0, 0, image.Width, image.Height);
BitmapData monoChromebmpData = null;
int stride = 0;
monoChromebmpData = image.LockBits(monoChromeBitmapRectangle, ImageLockMode.ReadOnly, resizedImage.PixelFormat);
IntPtr ptr = monoChromebmpData.Scan0;
stride = monoChromebmpData.Stride;
int numbytes = stride * image.Height;
byte[] bitmapFileData = new byte[numbytes];
Marshal.Copy(ptr, bitmapFileData, 0, numbytes);
image.UnlockBits(monoChromebmpData);
//Invert bitmap colors
for (int i = 0; i < bitmapFileData.Length; i++)
{
bitmapFileData[i] ^= 0xFF;
}
StringBuilder hexaDecimalImageDataString = new StringBuilder(bitmapFileData.Length * 2);
foreach (byte b in bitmapFileData)
hexaDecimalImageDataString.AppendFormat("{0:X2}", b);
return hexaDecimalImageDataString;
ここでは、モノクロ ビットマップ イメージをバイト配列に変換し、バイト配列から 16 進文字列に変換しています。フォーラムでグーグル検索しましたが、この種のエラーについては議論されていません。(私はばかげた間違いをしているかもしれません)正確に私が間違いを犯している場所を誰かが提案できますか.
前もって感謝します。
乾杯、シヴァ。