谁给我一张比例是100比100的白色100kb的图片尺寸比例

"一百元人民币图片搞笑"的糗事
你可能感兴趣:
糗事百科为大家收集了很多的一百元人民币图片搞笑的糗事,各种关于一百元人民币图片搞笑的爆笑经历、尴尬时刻和开心视频,想持续关注一百元人民币图片搞笑的糗事就收藏本页吧.【100分】如其获取位图颜色比例 - VB当前位置:& &&&【100分】如其获取位图颜色比例【100分】如其获取位图颜色比例&&网友分享于:&&浏览:6次【100分】如果获取位图颜色比例
如何根据一个BMP图片获得这个图片各种颜色占的比率,比如上图(请看图的时候忽略白色线,实际图是无白色线的):
浅灰:25%
深灰:25%
深蓝:25%
浅蓝:25%
我有个想法,就是把位图读到一个二维数组,然后再计算,但是我没做个类似操作,希望各位大侠能示范下!最好提供源码,谢谢!
------最佳解决方案--------------------最简单的办法:
如果不使用API,则set&pic=loadpicture(bmpfile),然后使用point获得图片像素颜色,最后作比较。
稍复杂的办法:
创建一个内存DC,然后将该bmp选入DC,再用getpixels获得像素的颜色,最后比较。
最高效还也较复杂的办法:
重复上述步骤,但直接访问内存中的位图数据(可以使用模拟指针转换为VB的bytes数组),最后直接访问数组获得像素颜色并比较。------其他解决方案--------------------lyserver你好!
用:set&pic=loadpicture(bmpfile),然后使用point获得图片像素颜色
这个方法非常慢,你说的另外几种方法能提供下源代码吗?------其他解决方案--------------------直接按&BMP&文件格式读取数据:
http://topic.csdn.net/t//634570.html------其他解决方案--------------------mark~------其他解决方案--------------------引用:lyserver你好!
用:set&pic=loadpicture(bmpfile),然后使用point获得图片像素颜色
这个方法非常慢,你说的另外几种方法能提供下源代码吗?
按照老鸟说的,直接分析BMP文件后读取像素效率最高,至于BMP文件格式,在《Win32&API大全》一书中有。
我比较忙,一般都是偷偷上一会就下了,没时间给代码。其实有了思路,实现是很容易的。------其他解决方案--------------------学习了!这篇帖子相当有技术含量。------其他解决方案--------------------谢谢lyserver以及其他各位的解答,现在去研究BMP格式比较费时,时间不够了,我现在用API来,代码如下:
Private&Type&BITMAP
&&&bmType&&&&&&&&&As&Long
&&&bmWidth&&&&&&&&As&Long
&&&bmHeight&&&&&&&As&Long
&&&bmWidthBytes&&&As&Long
&&&bmPlanes&&&&&&&As&Integer
&&&bmBitsPixel&&&&As&Integer
&&&bmBits&&&&&&&&&As&Long
Private&Declare&Function&GetObject&Lib&"gdi32"&Alias&"GetObjectA"&(ByVal&hObject&As&Long,&ByVal&nCount&As&Long,&lpObject&As&Any)&As&Long
Private&Declare&Function&GetBitmapBits&Lib&"gdi32"&(ByVal&hBitmap&As&Long,&ByVal&dwCount&As&Long,&lpBits&As&Any)&As&Long
Private&Declare&Function&SetBitmapBits&Lib&"gdi32"&(ByVal&hBitmap&As&Long,&ByVal&dwCount&As&Long,&lpBits&As&Any)&As&Long
Dim&PicBits()&&&&&As&Byte
Dim&PicInfo&&&&&&&As&BITMAP
Dim&Cnt&&&&&&&&&&&As&Long
Dim&BytesPerLine&&As&Long
Dim&xArrayx&&&&&&&As&XArrayDB
Private&Sub&Command1_Click()
&&&Dim&iRow&As&Long
&&&GetObject&Pic.Image,&Len(PicInfo),&PicInfo
&&&BytesPerLine&=&(PicInfo.bmWidth&*&3&+&3)&And&&HFFFFFFFC
&&&ReDim&PicBits(1&To&BytesPerLine&*&PicInfo.bmHeight&*&3)&As&Byte
&&&GetBitmapBits&Pic.Image,&UBound(PicBits),&PicBits(1)
&&&Set&xArrayx&=&New&XArrayDB 共&3&页:
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有

参考资料

 

随机推荐