C#中如何得到图片所有像素

C#中如何得到图片所有像素,第1张

步骤如下:

(1)在NET中创建一个窗体,加入pictureBox控件。设置其Image为空,SizeMode属性设为AutoSize;

(2)加入一个OpenFileDialog控件,一个button控件,用于打开文件;

(3)加入三个textBox控件,用于表示RGB三个颜色的值。

(4)定义一个私有变量pick为布尔值,来表示是否拾取上的颜色。并在Form1_Load中将其设置为false;再加入一个public Bitmap myBitmap用来进行函间的访问。

(5)为button控件增加click事件,该事件主要是完成读入文件和对pictureBox控件的初始化:

(6)为pictureBox控件增加mousemove事件:

代码如下:

Step1:设置bool值pick并初始化几个变量

public bool pick;

public Bitmap myBitmap;

private void Form1_Load(object sender, EventArgs e)

{

pick = false;

}

谷歌翻译:返回值是COLORREF值,它指定像素的RGB。 如果像素位于当前剪切区域之外,则返回值为CLR_INVALID(Wingdih中定义的0xFFFFFFFF)。

文档:

网页链接

以acd看图为例:

在默认状态下,选中后,在状态栏会显示图像的信息,有图像KB大小也有长宽尺寸,

不过这样一个一个查看太慢了,按Alt + O快捷键或者选择工具菜单>选项,打开选项设置窗口,

选择左侧文件列表>缩略图显示,再点击右侧的缩略图信息

在d出的选取缩略图显示信息中展开图像属性:勾图像大小,展开文件属性:勾选大小(KB)

点击添加按钮,添加到当前显示明细中,点击确定,返回选项窗口,点击确定。

看缩略图下面很清楚的显示出了图像大小,也就是长宽像素值,还有KB大小。

try{

File _file = new File("C:/Documents and Settings/mayuanfei/My Documents/女友照片jpg"); //读入文件

Image src = javaximageioImageIOread(_file); //构造Image对象

int wideth=srcgetWidth(null); //得到源图宽

int height=srcgetHeight(null); //得到源图长

Systemoutprintln(wideth+","+height);

}catch(Exception e){

eprintStackTrace();

}

CvScalar s;

s=cvGet2D( image, idx0, idx1 );

image为图像,idx0和idx1为像素坐标

再用sval[i]可以取出不同通道i=0,1,2,3的像素值

jonnysuen 的思路貌似不对

多线程用于处理不确定时间的情况

而像楼主的问题总的时间复杂度的一定的,所以不管你用不用多线程最后还是要读取每个像素,也就是是说,根本没有起到较少时间复杂度的目的

楼主的问题只能从算法上解决,简单的for循环是不行的

可能需要用到矩阵算法等多媒体方面的知识,我不是很了解,期待高手~~~

以上就是关于C#中如何得到图片所有像素全部的内容,包括:C#中如何得到图片所有像素、请教下关于获取屏幕像素值的问题,这段代码这句话是什么意思、如何获得图片的宽高像素数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9352582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存