Picture控件可以用GetPixel来得到RGB颜色值。返回值是一个Long类型的整数。它的值为R 65536 + G 256 + B。所以要得到其各自的颜色值,需要将返回值除65536得到R,返回值与65536取余除256得到G,返回值与65536256取余得到B。
原型:
int WINAPI icePub_getImgfilePColor(char strImgFilename,int x,int y,char strR,char strG,char strB,int flag)
输入:strImgFilename 待处理的文件名
x x坐标
y y坐标
flag 输出RGB值的格式,0 10进制,1 16进制
输出:strR R值
strG G值
strB B值
返回码:0 OK;-2 x,y值超出长宽
int retCode=-1;
char strR[128],strG[128],strB[128];
Cstring m_mem;
typedef int (WINAPI ICEPUB_GETIMGFILEPCOLOR)(char strImgFilename,int x,int y,char strR,char strG,char strB,int flag);
ICEPUB_GETIMGFILEPCOLOR icePub_getImgfilePColor = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDlldll");
if(hDLLDrv)
icePub_getImgfilePColor = (ICEPUB_GETIMGFILEPCOLOR )GetProcAddress(hDLLDrv, "icePub_getImgfilePColor");
if(icePub_getImgfilePColor)
retCode=icePub_getImgfilePColor("ajpg",100,55,strR,strG,strB,0);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
if(retCode == 0)
m_memFormat("(x,y):%d,%d\r\nR:%s\r\nG:%s\r\nB:%s",pointx,pointy,strR,strG,strB);
AfxMessageBox(m_mem);
原型:
int WINAPI icePub_imgToFileTextdata(char strImgFilename,char strFilename,char strFenge,int flag)
输入:strImgFilename 待处理图像文件 (会被强制256级灰度化)
strFilename 待生成BMP文本数据文件名
strFenge 列之间分隔符
flag 文本数据格式标志:0 10进制; 1 16进制; 10 RGB16进制
输出:
extern "C"
{
__declspec(dllexport)
int WINAPI icePub_imgToFileTextdata(char strImgFilename,char strFilename,char strFenge,int flag);
}
#pragma comment(lib,"icePubDlllib")
icePub_imgToFileTextdata("ajpg","bmpdatatxt",",",0);
原型:
char WINAPI icePub_getBufferFromImg2(char strImgFilename,int width,int height,int huiGrade)
输入:strImgFilename 文件名
huiGrade 图像灰度化标志,0 no; >1 and <=256 灰度级
输出:width 图像宽度
height 图像高度
返回值:图像的点阵数据(按照24位BMP格式)
extern "C"
{
__declspec(dllexport)
char WINAPI icePub_getBufferFromImg2(char strImgFilename,int width,int height,int huiGrade);
}
#pragma comment(lib,"icePubDlllib")
char bmpBuffer=NULL;
int imgWidth, imgHeight;
bmpBuffer = icePub_getBufferFromImg2 ("e:\\ajpg",&imgWidth,&imgHeight,0);
//然后对bmpBuffer数据处理即可
if(bmpBuffer != NULL)
free(bmpBuffer);
COLORREF rgb1;
rgb1=::GetPixel(MemDC,100,57);
取得MemDC中坐标为(100,57)点的RGB值,其中MemDC为HDC类型
以上就是关于VB Picture或Image中有一张图,如何取每个像素点的RGB值全部的内容,包括:VB Picture或Image中有一张图,如何取每个像素点的RGB值、怎样用C语言得到jpeg格式或BMP格式的图像的像素的rgb值、VC++中,如何读取图象的RGB值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)