Я печатаю изображение растровой карты монохромного изображения на термопринтере, где я могу распечатать изображение, но в крайнем правом углу печатается одна вертикальная линия. (Линия проходит сверху справа вниз справа и имеет толщину почти 2 мм)
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;
Здесь я конвертирую монохромное растровое изображение в байтовый массив и из байтового массива в шестнадцатеричную строку. Я погуглил на форумах, но такого рода ошибки не обсуждаются. (Может быть, я делаю глупую ошибку) Кто-нибудь может подсказать, где именно я делаю ошибку.
Заранее спасибо.
Привет, Шива.