本文整理汇总了C++中Image32::line方法的典型用法代码示例。如果您正苦于以下问题:C++ Image32::line方法的具体用法?C++ Image32::line怎么用?C++ Image32::line使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Image32
的用法示例。
在下文中一共展示了Image32::line方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateCompatibleDC
void Win32CompatibleBitmap::Set(Image32 &image)
{
///!!! надо сделать по нормальному, а не через SetPixel !!!
clear();
int w = image.width();
int h = image.height();
if (w<=0 && h<=0) return;
init(w, h);
if (!handle) return;
HDC dc = CreateCompatibleDC(0);
if (!dc) return;
_w = w;
_h = h;
HGDIOBJ old = ::SelectObject(dc, handle);
int i;
bool masked = false;
for (int y = 0; y<h; y++) {
unsigned32 *t = image.line(y);
char *m = (masked) ? mask.ptr()+y*w : 0;
for (i=0; i<w; i++) {
if (t[i] > 0x80000000)
{
if (!masked) {
mask.alloc(w*h);
memset(mask.ptr(), 1, w*h);
masked = true;
m = mask.ptr()+y*w;
}
m[i] = 0;
}
::SetPixel(dc, i, y, t[i]&0xFFFFFF);
}
}
::SelectObject(dc, old);
DeleteDC(dc);
}