2个回答
展开全部
1.位图文件前几十字节是位图头,该结构中有该位图使用多少种颜色的信息(例如256色的,或16位等等),关于位图头的格式网上有,一搜就行了。
2.位图文件中每一个像素点的数值即是该点的RGB值。
3.根据该位图使用了多少位颜色创建一个数组,初值全赋为0,遍历每一个像素点,读出RGB值,与该RGB值相等的对应数组成员+1,此步是为了统计该图片中每个点的颜色分布。
4.遍历数组统计不为0的数组成员个数,该个数即为此位图中一共使用了多少种颜色。对应的数组下标即为RGB值。
有了RGB值显示颜色并修改应该不在话下了吧?
思路仅供参考,建议自己再多想想。
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值?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询