←选择平台

IntPtr GetPixelData (int, int, int)方法

总结
将指定像素的像素数据复制到非托管内存缓冲区。
语法
c#
VB
c++
Java
公共无效GetPixelData (intintIntPtr数据intdataSize
公共过载GetPixelData (_按值传递作为整数, _按值传递作为整数, _按值传递数据作为IntPtr, _按值传递dataSize作为整数_
公共无效getPixelData (intint字节[]的数据,intdataSize
公共无效GetPixelData (intintIntPtr数据intdataSize

参数


像素的从零开始的行号。


像素的从零开始的列号

数据
指向要将像素数据复制到的非托管内存缓冲区的指针。

dataSize
缓冲区的字节大小数据

讲话

使用此方法时,图像内存必须锁定。正常情况下,你可以打电话访问在开始使用此方法的操作之前锁定内存。然后调用释放当操作结束时。

不对像素数据执行任何转换。

复制的像素数据可以表示图像调色板的索引,灰度值((文档/医疗只有),或红色、绿色和蓝色的颜色值。

该方法只适用于8、16、24、32、48和64位图像。其工作原理如下:

  • 对于8位图像,此方法将检索指定像素的调色板索引。
  • 对于16位图像,此方法将检索构成像素的2字节值。
  • 对于24位图像,该方法将检索包含像素颜色的3个字节。的订单是RGB还是BGR。
  • 对于32位图像,该方法将检索包含像素颜色和alpha信息的4个字节。前3个字节包含像素颜色。的订单决定前3个字节的数据是RGB还是BGR。第4个字节是alpha通道信息。
  • 对于48位图像,该方法将检索包含像素颜色的6个字节。的订单是RGB还是BGR。每个颜色组件都存储为16位值,其中0对应黑色,0xFFFF对应全白。
  • 对于64位图像,该方法将检索包含像素颜色和alpha信息的8个字节。的订单决定前6字节的数据是RGB还是BGR。每个颜色组件都存储为16位值,其中0对应黑色,0xFFFF对应全白。最后两个字节包含alpha信息(也存储为一个短值)。

返回的字节数组的最小大小被计算出来:

(BitsPerPixel + 7) / 8

您可以使用SetPixelData方法将返回值分配给另一个像素。

该方法使用图像坐标来指定像素。因此,必须考虑图像的视图角度。如果指定的像素在图像之外或区域之外(如果图像有一个),则此方法将引发异常。

SetPixelData方法更改指定像素的数据。

有关更多信息,请参阅介绍用LEADTOOLS进行图像处理

有关更多信息,请参阅视图视图

例子

这个例子使用了GetPixelData和SetPixelData方法来交换特定像素的R和G值。

c#
VB
使用Leadtools;使用Leadtools.Codecs;使用Leadtools.ImageProcessing;使用Leadtools.ImageProcessing.Core;使用Leadtools.ImageProcessing.Color;使用Leadtools.Dicom;使用Leadtools.Drawing;使用Leadtools.Controls;使用Leadtools.Svg;公共无效GetPixelDataExample ()RasterCodecs codecs =RasterCodecs ();//加载图像RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,“IMAGE1。CMP”));如果(图片。BitsPerPixel == 24)字节[]数据;字节价值;int行= 10,列= 20;image.Access ();数据=图像。GetPixelData (行,Column);//交换R和B的值值=数据[0];数据[0]=数据[2];数据[2]=值;//返回转换后的像素的形象。SetPixelData(行,列,数据);image.Release ();编解码器。保存(形象,Path.Combine (LEAD_VARS.ImagesDir“IMAGE1_GetPixelData.BMP”), RasterImageFormat.Bmp, 0);image.Dispose ();codecs.Dispose ();静态LEAD_VARS公共常量字符串ImagesDir =@“C: \ LEADTOOLS21 \ Resources \图片”
进口Leadtools进口Leadtools。编解码器进口Leadtools。ImageProcessing进口Leadtools.ImageProcessing.Core进口Leadtools.ImageProcessing.Color进口Leadtools。控制进口Leadtools。Dicom进口Leadtools。画进口Leadtools.Svg公共GetPixelDataExample ()昏暗的编解码器作为RasterCodecs =RasterCodecs ()载入图像昏暗的图像作为RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,“IMAGE1。CMP”))如果的形象。BitsPerPixel = 24然后昏暗的数据作为字节()昏暗的价值作为字节昏暗的作为整数= 10,列作为整数= 20image.Access ()数据=图像。GetPixelData (行,Column)'交换R和B值值=数据(0)数据(0)=数据(2)数据(2)=值'放回转换后的像素的形象。SetPixelData(行,列,数据)image.Release ()结束如果编解码器。保存(形象,Path.Combine (LEAD_VARS.ImagesDir“IMAGE1_GetPixelData.BMP”), RasterImageFormat.Bmp, 0)image.Dispose ()codecs.Dispose ()结束公共NotInheritableLEAD_VARS公共常量ImagesDir作为字符串“C: \ LEADTOOLS21 \ Resources \图片”结束
需求

目标平台

Leadtools组装
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。