c#
VB
c++
公共静态类RasterBufferConverter
公共mustlinheritNotInheritable类RasterBufferConverter
公共ref类RasterBufferConverter摘要密封
此示例以每像素24位的速度加载图像,并以每像素16位的速度创建新图像,并使用转换方法将数据从每像素24位转换为每像素16位。
使用Leadtools;
使用Leadtools.Codecs;
公共无效RasterBufferConverterExample ()
{
字符串srcFileName = Path.Combine(LEAD_VARS.ImagesDir,“Image1.cmp”);
字符串destFileName = Path.Combine(LEAD_VARS.ImagesDir,“Image1_16bits.bmp”);
使用(RasterCodecs codecs =新RasterCodecs ())
{
编解码器。ThrowExceptionsOnInvalidImages =真正的;
//加载图像,每像素24位。
使用(RasterImage srcImage =编解码器。加载(srcFileName, 24, CodecsLoadByteOrder.)Bgr, 1,1))
{
Assert.IsNotNull (srcImage);
Assert.IsTrue (srcImage。BitsPerPixel == 24);
//创建一个新的16位映像。
使用(RasterImage destImage =新RasterImage (
RasterMemoryFlags。传统的,
srcImage。宽度,
srcImage。高度,
16日,
srcImage。订单,
srcImage。ViewPerspective,
srcImage.GetPalette (),
IntPtr。零,
0))
{
Assert.IsNotNull (destImage);
Assert.IsTrue (destImage。BitsPerPixel == 16);
//创建一个足够大的缓冲区来容纳源行或目标行
intbytesPerLine = Math.Max(srcImage. max)字节sPerLine, destImage.BytesPerLine);
字节[] buffer =新字节[bytesPerLine];
//处理从src到dest image的每一行
srcImage.Access ();
destImage.Access ();
为(intI = 0;i < srcImage.Height;我+ +)
{
srcImage。GetRow(i, buffer, 0, srcImage.BytesPerLine);
RasterBufferConverter。转换(
缓冲区,
0,
srcImage。宽度,
srcImage。BitsPerPixel,
destImage。BitsPerPixel,
srcImage。订单,
destImage。订单,
零,
零,
0);
destImage。SetRow(i, buffer, 0, destImage.BytesPerLine);
}
destImage.Release ();
srcImage.Release ();
//将目标映像保存回磁盘
编解码器。保存(destImage, destFileName, RasterImageFormat.Bmp, 16);
}
}
}
}
静态类LEAD_VARS
{
公共常量字符串ImagesDir =@“C: \ LEADTOOLS21 \ Resources \图片”;
}
进口Leadtools
进口Leadtools。编解码器
公共子RasterBufferConverterExample ()
昏暗的编解码器作为RasterCodecs =新RasterCodecs ()
编解码器。ThrowExceptionsOnInvalidImages =真正的
昏暗的srcFileName作为字符串= Path.Combine (LEAD_VARS.ImagesDir“Image1.cmp”)
昏暗的destFileName作为字符串= Path.Combine (LEAD_VARS.ImagesDir“Image1_16bits.bmp”)
’以每像素24位的速度加载图像。
昏暗的srcImage作为RasterImage =编解码器。加载(srcFileName, 24, CodecsLoadByteOrder.)Bgr, 1,1)
Debug.Assert (srcImage。BitsPerPixel = 24)
“创建一个足以一次容纳一行的缓冲区。
昏暗的bytesPerLine作为整数=数学。马克斯(srcImage。字节sPerLine, destImage.BytesPerLine)
昏暗的缓冲作为字节() =新字节(bytesPerLine - 1) {}
'创建一个新的16位图像。
昏暗的destImage作为RasterImage =新RasterImage (
RasterMemoryFlags。传统的,
srcImage。宽度,
srcImage。高度,
16日,
srcImage。订单,
srcImage。ViewPerspective,
srcImage.GetPalette (),
IntPtr。零,
0)
Debug.Assert (destImage。BitsPerPixel = 16)
'处理从src到dest图像的每一行
srcImage.Access ()
destImage.Access ()
昏暗的我作为整数= 0
做而i < srcImage。高度
srcImage。GetRow(i, buffer, 0, srcImage.BytesPerLine)
RasterBufferConverter。转换(
缓冲区,
0,
srcImage。宽度,
srcImage。BitsPerPixel,
destImage。BitsPerPixel,
srcImage。订单,
destImage。订单,
没有什么,
没有什么,
0)
destImage。SetRow(i, buffer, 0, destImage.BytesPerLine)
I += 1
循环
destImage.Release ()
srcImage.Release ()
'将目标图像保存回磁盘
编解码器。保存(destImage, destFileName, RasterImageFormat.Bmp, 16)
“打扫干净”
srcImage.Dispose ()
destImage.Dispose ()
结束子
公共NotInheritable类LEAD_VARS
公共常量ImagesDir作为字符串=“C: \ LEADTOOLS21 \ Resources \图片”
结束类
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。