如何获得图片的宽高像素数

如何获得图片的宽高像素数,第1张

以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();

}

制作游戏时,我们最常用的格式是png,因为png可以有透明的背景,这样在游戏显示是,透明的部分不会显示,只显示我们要的那部分。但是,透明的部分依然是的一部分,当你制作了一个非矩形的按钮,会有相当多的透明部分点击有效,那么如何做到点击透明部分无效呢?这就是本片文章要讲的:获取图像像素值。当然不仅仅在制作非矩形按钮时有用,在游戏中的很多涉及处理功能的地方也大有用途。

废话不多说,直接贴源码(Cocos2d-x 3x版本):

HelloWorldSceneh文件

HelloWorldScenecpp文件:

在GetRGBA函数中,调用了OpenGL的接口glReadPixels,它用于读取一些像素。当前可以简单理解为“把已经绘制好的像素(它可能已经被保存到显卡的显存中)读取到内存”。

glReadPixels函数总共有七个参数。前四个参数可以得到一个矩形,该矩形所包括的像素都会被读取出来。(第一、二个参数表示了矩形的左下角横、纵坐标,坐标以窗口最左下角为零,最右上角为最大值;第三、四个参数表示了矩形的宽度和高度)

第五个参数表示读取的内容,例如:GL_RGB就会依次读取像素的红、绿、蓝三种数据,GL_RGBA则会依次读取像素的红、绿、蓝、alpha四种数据,GL_RED则只读取像素的红色数据(类似的还有GL_GREEN,GL_BLUE,以及GL_ALPHA)。如果采用的不是RGBA颜色模式,而是采用颜色索引模式,则也可以使用GL_COLOR_INDEX来读取像素的颜色索引。目前仅需要知道这些,但实际上还可以读取其它内容,例如深度缓冲区的深度数据等。

第六个参数表示读取的内容保存到内存时所使用的格式,例如:GL_UNSIGNED_BYTE会把各种数据保存为GLubyte,GL_FLOAT会把各种数据保存为GLfloat等。

第七个参数表示一个指针,像素数据被读取后,将被保存到这个指针所表示的地址。注意,需要保证该地址有足够的可以使用的空间,以容纳读取的像素数据。例如一幅大小为256256的图象,如果读取其RGB数据,且每一数据被保存为GLubyte,总大小就是:2562563 = 196608字节,即192千字节。如果是读取RGBA数据,则总大小就是2562564 = 262144字节,即256千字节。

注意:glReadPixels实际上是从缓冲区中读取数据,如果使用了双缓冲区,则默认是从正在显示的缓冲(即前缓冲)中读取,而绘制工作是默认绘制到后缓冲区的。因此,如果需要读取已经绘制好的像素,往往需要先交换前后缓冲。

int[] pixels = new int[bitgetWidth()bitgetHeight()];//保存所有的像素的数组,宽×高

bitgetPixels(pixels,0,bitgetWidth(),0,0,bitgetWidth(),bitgetHeight());

for(int i = 0; i < pixelslength; i++){

int clr = pixels[i];

int red = (clr & 0x00ff0000) >> 16; //取高两位

int green = (clr & 0x0000ff00) >> 8; //取中两位

int blue = clr & 0x000000ff; //取低两位

Systemoutprintln("r="+red+",g="+green+",b="+blue);

}

其中getPixels中第三个参数要为的宽度

以上就是关于如何获得图片的宽高像素数全部的内容,包括:如何获得图片的宽高像素数、java 如何获取图片的像素值、Cocos2d-x之获取图像像素值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9522147.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存