本文整理汇总了C++中GetPixel函数的典型用法代码示例。如果您正苦于以下问题:C++ GetPixel函数的具体用法?C++ GetPixel怎么用?C++ GetPixel使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetPixel函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Image
Image* Image::Crop(int x, int y, int w, int h)
{
/* Your Work Here (section 3.2.5) */
//return NULL ;
Pixel px;
Image* img = new Image(w, h);
for(int y_ = 0; y_ < h; y_++) {
for(int x_ = 0; x_ < w; x_++) {
px = GetPixel(x + x_, y + y_);
img->GetPixel(x_, y_).Set(px.r, px.g, px.b, px.a);
}
}
return img;
}
示例2: dc
void CMainDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (IsIconic())
{
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
//dc.DrawIcon(x, y, m_hIcon);
}
else
{
//CDialog::OnPaint();
RECT rect;
GetClientRect(&rect);
int w = rect.right - rect.left;
int h = rect.bottom - rect.top;
COLORREF colortrans = RGB(0,255,0);
HBRUSH hBrush = CreateSolidBrush(colortrans);
FillRect(dc,&rect,hBrush);
DeleteObject(hBrush);
BITMAP bmp;
GetObject(m_hBmp,sizeof(bmp),&bmp);
HDC hBmpDC = CreateCompatibleDC(dc);
SelectObject(hBmpDC,m_hBmp);
TransparentBlt(dc,0,0,bmp.bmWidth, bmp.bmHeight,hBmpDC,0,0,bmp.bmWidth,bmp.bmHeight,RGB(0,255,0));
DeleteDC(hBmpDC);
if(m_bFirst){
HRGN rgn = GetTrans(dc,GetPixel(dc,0,0),0,0,bmp.bmWidth, bmp.bmHeight);
::SetWindowRgn(m_hWnd,rgn,TRUE);
m_bFirst = FALSE;
}
}
}
示例3: CheckHit
/*
* calculate where on the target the bolt hit
* this is based on the colours of the target rings
*/
static void CheckHit( HDC hdc, POINT hit_point )
/**********************************************/
{
DWORD colour;
unsigned short points;
unsigned short dialog_item;
BOOL translated;
colour = GetPixel( hdc, hit_point.x, hit_point.y );
switch( colour ) {
case RING1:
dialog_item = YELLOW;
break;
case RING2:
dialog_item = RED;
break;
case RING3:
dialog_item = BLUE;
break;
case RING4:
dialog_item = BLACK;
break;
case RING5:
dialog_item = WHITE;
break;
case BACKGROUND:
dialog_item = MISSED;
break;
}
/*
* increment # of hits on location
*/
points = GetDlgItemInt( ScoreWnd, dialog_item, &translated, FALSE );
points++;
SetDlgItemInt( ScoreWnd, dialog_item, points, FALSE );
/*
* increment # of shots
*/
points = GetDlgItemInt( ScoreWnd, SHOTS, &translated, FALSE );
points++;
SetDlgItemInt( ScoreWnd, SHOTS, points, FALSE );
return;
} /* CheckHit */
示例4: GetWidth
bool CFloodFill2::DrawLineH(int x1, int x2, int y, COLORREF Color, const CRect& Rect)
{
if (!m_pDib)
return false;
if (!m_bRedEye && Color == CLR_NONE)
return false;
if (x1 > x2)
x1^=x2, x2^=x1, x1^=x2;
if (x1 < 0 && x2 < 0)
return false;
LONG nWidth = GetWidth();
if (x1 >= nWidth && x2 >= nWidth)
return false;
if (x1 < 0)
x1 = 0;
if (x2 >= nWidth)
x2 = nWidth - 1;
int x = x1;
LPBYTE pPixel = DibPtrXYExact(m_pDib, x1, y);
LPBYTE pEnd = DibPtrXYExact(m_pDib, x2, y);
while (pPixel <= pEnd)
{
if (m_pBufferDib)
{
if (!m_bRedEye)
Color = m_pBufferDib->GetPixel(x++, y);
else
{
Color = GetPixel(x++, y);
RedEyeRemove(Color);
}
}
*pPixel++ = GetBValue(Color);
*pPixel++ = GetGValue(Color);
*pPixel++ = GetRValue(Color);
}
return true;
}
示例5: update
void ImageWidget::mouseReleaseEvent(QMouseEvent *event)
{
QWidget::mouseReleaseEvent(event);
// Eventlogik
if (event->button() == Qt::LeftButton) {
mDraw = false;
// Aktualisiere Bild
update();
if (mTrack) {
emit ColorChanged(GetPixel());
}
}
}
示例6: PrintState
static void PrintState(boolean *state) {
int x, y;
for (y = 0; y < STATE_HEIGHT; y++) {
printf(" ");
for (x = 0; x < STATE_WIDTH; x++) {
printf(GetPixel(state, x, y) ? "X" : "O");
printf(x != STATE_WIDTH - 1 ? "," : "");
printf((x + 1) % 5 == 0 ? " " : "");
}
printf("\n");
printf((y + 1) % 5 == 0 ? "\n" : "");
}
}
示例7: GetBlock
void CSampleView::OnLButtonDown(UINT nFlags, CPoint point)
{
if (!m_iSize)
return;
if (point.y > m_clientRect.bottom)
return;
int Block = GetBlock(point.x);
m_iSelStart = GetPixel(Block);
m_iSelEnd = m_iSelStart;
Invalidate();
RedrawWindow();
m_bClicked = true;
CStatic::OnLButtonDown(nFlags, point);
}
示例8: GetTextRect
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void ContextItem::Paint(HDC hDC)
{
if (m_ItemID == MENUITEM_ID_FOLDER)
FolderItem::Paint(hDC);
else
MenuItem::Paint(hDC);
if (0==(m_type & MFT_OWNERDRAW))
return;
RECT r; GetTextRect(&r);
int w = r.right - r.left;
int h = r.bottom - r.top;
// the remaining margin
int m = (int)imax(0, w - (m_bmp_width - m_icon_offset));
// text width
int tw = w - m;
HDC buf = CreateCompatibleDC(NULL);
HGDIOBJ other_bmp = SelectObject(buf, m_bmp);
#if 0
BitBlt(hDC, r.left, r.top, tw, h, buf, m_icon_offset, 0, SRCCOPY);
#else
// adjust offset according to justifications
if (mStyle.MenuFrame.Justify == DT_CENTER)
m /= 2;
else
if (mStyle.MenuFrame.Justify != DT_RIGHT)
m = 0;
// then plot points when they seem to have the textcolor
// icons on the left are cut off
COLORREF CRTXT_BB = m_bActive ? mStyle.MenuHilite.TextColor : mStyle.MenuFrame.TextColor;
int x, y;
for (y = 0; y < h; y++)
for (x = 0; x < tw; x++)
if (CRTXT_WIN == GetPixel(buf, x+m_icon_offset, y))
SetPixel (hDC, r.left+m+x, r.top+y, CRTXT_BB);
#endif
SelectObject(buf, other_bmp);
// this let's the handler know which command to invoke eventually
if (m_bActive) DrawItem(buf, m_bmp_width, h, true);
DeleteDC(buf);
}
示例9: SelectObject
ChessView::ChessView( HWND parent, Contact::ref contact )
{ _HWND=parent;
filePathCHESS=appRootPath+L"\\games\\chess\\chess_1.png";
bmpc=SHLoadImageFile(filePathCHESS.c_str());
/*GetObject(bmpc, sizeof(bmc), &bmc);*/
HDC hdcImage2=CreateCompatibleDC(NULL);
SelectObject(hdcSKIN, bmpc);
SelectObject(hdcImage2, bmpc);
flagaktiv=0;
transparentColorCH=GetPixel(hdcImage2, 0, 0);DeleteDC(hdcImage2);
int Chesspoleinit[9][9]={
0 , 0, 0, 0, 0, 0, 0, 0, 0,
0 ,12,13,14,15,16,14,13,12,
0 ,11,11,11,11,11,11,11,11,
0 , 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0, 0, 0, 0, 0, 0, 0, 0,
0 , 1, 1, 1, 1, 1, 1, 1, 1,
0 , 2, 3, 4, 5, 6, 4, 3, 2
};
int cvtp=1;
for(int x=1;x<=8;x++){for(int y=1;y<=8;y++){
Chesspole[y][x]=Chesspoleinit[y][x];
}}
BOOST_ASSERT(parent);
if (windowClass==0)
windowClass=RegisterWindowClass();
if (windowClass==0) throw std::exception("Can't create window class");
parentHWnd=parent;
this->contact=contact;
thisHWnd=CreateWindow((LPCTSTR)windowClass, _T("chat"), WS_CHILD |WS_VISIBLE,
0, 0,
CW_USEDEFAULT, CW_USEDEFAULT,
parent, NULL, g_hInst, (LPVOID)this);
}
示例10: OnTimer
VOID OnTimer(HWND hWindow, UINT uID)
{
POINT point = {};
static COLORREF previousColor = 0;
// Получение позиции курсора в экранных координатах.
GetCursorPos(&point);
// Получение контекста устройства для всего экрана.
HDC hDesktopDC = GetDC(NULL);
// Получение цвета пикселя под курсором.
g_currentColor = GetPixel(hDesktopDC, point.x, point.y);
// Освобождение контекста устройства.
ReleaseDC(NULL, hDesktopDC);
// Проверка, отличается ли цвет текущего пикселя от цвета предыдущего.
if (g_currentColor != previousColor)
{
// Формирование строки для последующего вывода на экран.
_stprintf_s(g_szText, TEXT("\n R: %d\n G: %d\n B: %d\n\n #%.2X%.2X%.2X"),
GetRValue(g_currentColor), GetGValue(g_currentColor), GetBValue(g_currentColor),
GetRValue(g_currentColor), GetGValue(g_currentColor), GetBValue(g_currentColor));
// Заполнение белым цветом растрового изображения, выбранного в контекст памяти.
PatBlt(g_hMemoryDC, 0, 0, g_clientRectangle.right, g_clientRectangle.bottom, WHITENESS);
// Установка цвета кисти, выбранной в контекст устройства.
SetDCBrushColor(g_hMemoryDC, g_currentColor);
// Рисование прямоугольника, который будет заполнен цветом, соответствующим пикселю под
// курсором.
Rectangle(g_hMemoryDC, g_colorRectangle.left, g_colorRectangle.top, g_colorRectangle.right,
g_colorRectangle.bottom);
// Вывод текста, содержащего значения каждой составляющей для текущего цвета.
DrawText(g_hMemoryDC, g_szText, _tcslen(g_szText), &g_textRectangle, DT_CENTER);
// Отправка приложению сообщения WM_PAINT.
InvalidateRect(hWindow, NULL, TRUE);
}
// Запоминание текущего цвета.
previousColor = g_currentColor;
}
示例11: tImg
void cImage::Flip() {
if ( NULL != mPixels ) {
cImage tImg( mHeight, mWidth, mChannels );
for ( eeUint y = 0; y < mHeight; y++ )
for ( eeUint x = 0; x < mWidth; x++ )
tImg.SetPixel( y, x, GetPixel( x, mHeight - 1 - y ) );
ClearCache();
mPixels = tImg.GetPixels();
mWidth = tImg.Width();
mHeight = tImg.Height();
tImg.AvoidFreeImage( true );
}
}
示例12: GetPixel
/*
*--------------------------------------------------------------------------------
* 函数名: BeginDraw
* 功能 : 用当前画刷颜色填充封闭区域
* 参数 : CPoint ptPoint - 当前的坐标点
* 算法 : 重载函数,调用 API 函数进行填充
*--------------------------------------------------------------------------------
*/
void CPaintTub::BeginDraw(const CPoint& ptPoint)
{
HDC hDC = m_hDC;
// 得到当前坐标点的颜色
COLORREF crCurPos = GetPixel(hDC, ptPoint.x, ptPoint.y);
HBRUSH hBrush = CreateSolidBrush(m_crPenColor);
HBRUSH hOldBrush = (HBRUSH) SelectObject(hDC, hBrush);
// 填充颜色, Windows API
ExtFloodFill(hDC, ptPoint.x, ptPoint.y, crCurPos, FLOODFILLSURFACE);
SelectObject(hDC, hOldBrush);
DeleteObject(hOldBrush);
DeleteObject(hBrush);
}
示例13: GPwritebitmap
int GPwritebitmap (Gbitmap_t *bitmap, FILE *fp) {
Gwidget_t *widget;
HDC gc;
COLORREF color;
char bufp[2048];
int bufi, x, y, w, h;
if (!bitmap) {
Gerr (POS, G_ERRNOBITMAP);
return -1;
}
if (
bitmap->canvas < 0 || bitmap->canvas >= Gwidgetn ||
!Gwidgets[bitmap->canvas].inuse
) {
Gerr (POS, G_ERRBADWIDGETID, bitmap->canvas);
return -1;
}
widget = &Gwidgets[bitmap->canvas];
if (widget->type != G_CANVASWIDGET && widget->type != G_PCANVASWIDGET) {
Gerr (POS, G_ERRNOTACANVAS, bitmap->canvas);
return -1;
}
gc = CreateCompatibleDC (GC);
SelectObject (gc, bitmap->u.bmap.orig);
fprintf (fp, "P6\n%d %d 255\n", (int) bitmap->size.x, (int) bitmap->size.y);
bufi = 0;
w = bitmap->size.x;
h = bitmap->size.y;
for (y = 0; y < h; y++) {
for (x = 0; x < w; x++) {
color = GetPixel (gc, x, y);
bufp[bufi++] = GetRValue (color);
bufp[bufi++] = GetGValue (color);
bufp[bufi++] = GetBValue (color);
if (bufi + 3 >= 2048) {
fwrite (bufp, 1, bufi, fp);
bufi = 0;
}
}
}
if (bufi > 0)
fwrite (bufp, 1, bufi, fp);
DeleteDC (gc);
return 0;
}
示例14: tooltip_get_cursor_height
/*
* tooltip_get_cursor_height - マウスカーソルの高さを取得
*/
static int tooltip_get_cursor_height(const HCURSOR hcursor)
{
HDC hdc, mdc;
HBITMAP hbmp, ret_hbmp;
ICONINFO icon_info;
int width, height;
int x, y;
// カーソルの大きさ取得
width = GetSystemMetrics(SM_CXCURSOR);
height = GetSystemMetrics(SM_CYCURSOR);
// カーソル(マスク)の描画
hdc = GetDC(NULL);
mdc = CreateCompatibleDC(hdc);
hbmp = CreateCompatibleBitmap(hdc, width, height);
ret_hbmp = SelectObject(mdc, hbmp);
DrawIconEx(mdc, 0, 0, hcursor, width, height, 0, NULL, DI_MASK);
// カーソルの高さ取得
for (y = height - 1; y >= 0; y--) {
for (x = 0; x < width; x++) {
if (GetPixel(mdc, x, y) != RGB(255, 255, 255)) {
break;
}
}
if (x < width) {
break;
}
}
SelectObject(mdc, ret_hbmp);
DeleteObject(hbmp);
DeleteDC(mdc);
ReleaseDC(NULL, hdc);
// ホットスポットの位置を取得
ZeroMemory(&icon_info, sizeof(ICONINFO));
GetIconInfo(hcursor, &icon_info);
if (icon_info.hbmMask != NULL) {
DeleteObject(icon_info.hbmMask);
}
if (icon_info.hbmColor != NULL) {
DeleteObject(icon_info.hbmColor);
}
return (((y < 0) ? height : y) - icon_info.yHotspot);
}
示例15: createGrayBitmap
HBITMAP createGrayBitmap( HBITMAP srcBmp, COLORREF transparent )
{
HBITMAP destBmp = NULL;
BITMAP bitmap;
HDC dcMem = NULL, dcSrc = NULL;
HBITMAP bmpOldSrc = NULL, bmpOldMem = NULL;
if( ( dcMem = CreateCompatibleDC( NULL ) ) && ( dcSrc = CreateCompatibleDC( NULL ) ) )
{
GetObject( srcBmp, sizeof( bitmap ), &bitmap );
if( ( destBmp = CreateBitmap( bitmap.bmWidth, bitmap.bmHeight,
bitmap.bmPlanes, bitmap.bmBitsPixel, NULL ) ) )
{
bmpOldMem = (HBITMAP)SelectObject( dcMem, destBmp );
bmpOldSrc = (HBITMAP)SelectObject( dcSrc, srcBmp );
if( bmpOldMem && bmpOldSrc )
{
BitBlt( dcMem, 0, 0, bitmap.bmWidth, bitmap.bmHeight,
dcSrc, 0, 0, SRCCOPY );
for( int i = 0; i < bitmap.bmWidth; ++i )
for( int j = 0; j < bitmap.bmHeight; ++j )
{
COLORREF color = GetPixel( dcMem, i, j );
if( color != transparent )
{
double grayScale = GetRValue( color ) * 0.3 +
GetGValue( color ) * 0.59 +
GetBValue( color ) * 0.11;
grayScale = grayScale / 2 + 128;
color = RGB( grayScale, grayScale, grayScale );
SetPixel( dcMem, i, j, color );
}
}
SelectObject( dcSrc, bmpOldSrc );
SelectObject( dcMem, bmpOldMem );
}
}
}
if( dcMem ) DeleteDC( dcMem );
if( dcSrc ) DeleteDC( dcSrc );
return destBmp;
}