VC 位图处理 读入一幅位图 扫描图片中一共用到了多少种颜色 并能显示出不同颜色的RGB值并可以修改 10

求思路或代码... 求思路或代码 展开
 我来答
greenberetcy
2013-01-31
知道答主
回答量:35
采纳率:100%
帮助的人:15.5万
展开全部
1.位图文件前几十字节是位图头,该结构中有该位图使用多少种颜色的信息(例如256色的,或16位等等),关于位图头的格式网上有,一搜就行了。
2.位图文件中每一个像素点的数值即是该点的RGB值。
3.根据该位图使用了多少位颜色创建一个数组,初值全赋为0,遍历每一个像素点,读出RGB值,与该RGB值相等的对应数组成员+1,此步是为了统计该图片中每个点的颜色分布。
4.遍历数组统计不为0的数组成员个数,该个数即为此位图中一共使用了多少种颜色。对应的数组下标即为RGB值。

有了RGB值显示颜色并修改应该不在话下了吧?

思路仅供参考,建议自己再多想想。
追问
typedef struct tagBITMAPINFOHEADER{DWORD biSize; LONG biWidth;LONG biHeight; WORD biPlanes; WORD biBitCountDWORD biCompression; DWORD biSizeImage;LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsedDWORD biClrImportant} BITMAPINFOHEADER 你说的就是这个参数  WORD biBitCount;//  的值就是RGB值?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
归悦欣cf
2013-02-04 · TA获得超过1443个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1311万
展开全部
把位图装载进内存,获取位图数据进行分析就是了。
追问
这么返回位图数据   用什么函数
追答
用函数GetBitmapBits
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式