ar.*_*gin 8 c# wpf leadtools-sdk
我使用 LeadTools 进行扫描。
我想将扫描图像转换为字节。
void twainSession_AcquirePage(object sender, TwainAcquirePageEventArgs e)
{
ScanImage = e.Image.Clone();
ImageSource source = RasterImageConverter.ConvertToSource(ScanImage, ConvertToSourceOptions.None);
}
Run Code Online (Sandbox Code Playgroud)
如何将ImageSource转换为Byte数组?
如果您使用 Xamarin,则可以使用以下命令:
public async Task<byte[]> ConvertImageSourceToBytesAsync(ImageSource imageSource)
{
Stream stream = await ((StreamImageSource)imageSource).Stream(CancellationToken.None);
byte[] bytesAvailable = new byte[stream.Length];
stream.Read(bytesAvailable, 0, bytesAvailable.Length);
return bytesAvailable;
}
Run Code Online (Sandbox Code Playgroud)
除非您明确需要 ImageSource 对象,否则无需转换为 ImageSource 对象。您可以使用以下代码直接从 Leadtools.RasterImage 获取包含像素数据的字节数组:
int totalPixelBytes = e.Image.BytesPerLine * e.Image.Height;
byte[] byteArray = new byte[totalPixelBytes];
e.Image.GetRow(0, byteArray, 0, totalPixelBytes);
Run Code Online (Sandbox Code Playgroud)
请注意,这仅提供原始像素数据。
如果您需要包含完整图像(例如 JPEG)的内存流或字节数组,则也不需要转换为源。您可以像这样使用 Leadtools.RasterCodecs 类:
RasterCodecs codecs = new RasterCodecs();
System.IO.MemoryStream memStream = new System.IO.MemoryStream();
codecs.Save(e.Image, memStream, RasterImageFormat.Jpeg, 24);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15676 次 |
最近记录: |