Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Net] Как в GDI+ сделать операцию GetPixel? 14.09.09 06:46
Автор: Vedrus <Serokhvostov Anton> Статус: Member Отредактировано 14.09.09 06:58 Количество правок: 3
|
При помощи класса Image загружаю gif-файл. А дальше что? В классе Bitmap есть член GetPixel, но он не умеет загружать gif-файлы. Как сделать GetPixel, но для Image?
В MSDN решения проблемы найти не удалось. Перековырял все свойства Image, но нужного так и не нашёл. Попробовал нарисовать объект через класс Graphics, чтобы потом обычным GDI'шным GetPixel'ом считать информацию, но Graphics почему-то жалуется, что ему не хватает памяти на загрузку картинки (а именно функция DrawImage на это жалуется). Вот мой код:
BOOL LoadGif(WCHAR *lpwszImage, LPBYTE lpbyImage)
{
HDC hdcImage;
UINT uWidth, uHeight;
Image *capcha = new Image(lpwszImage);
uWidth = capcha->GetWidth();
uHeight = capcha->GetHeight();
hdcImage = CreateCompatibleDC(GetDC(NULL));
HBITMAP hBitmap = CreateCompatibleBitmap(hdcImage, uWidth, uHeight);
SelectObject(hdcImage, hBitmap);
Graphics *g = new Graphics(hdcImage);
g->SetPageUnit(UnitPixel);
RectF bounds(0, 0, (REAL) uWidth, (REAL) uHeight);
g->DrawImage(capcha, bounds);
COLORREF cl = GetPixel(g->GetHDC(), 169, 1);
DeleteObject(hBitmap);
DeleteDC(hdcImage);
delete g;
delete capcha;
return TRUE;
}
---
|
|
Для начала тебе стоило бы подучить плюсы. 14.09.09 08:19
Автор: amirul <Serge> Статус: The Elderman
|
> При помощи класса Image загружаю gif-файл. А дальше что? В > классе Bitmap есть член GetPixel, но он не умеет загружать > gif-файлы. Как сделать GetPixel, но для Image? А зачем?
> В MSDN решения проблемы найти не удалось. Перековырял все > свойства Image, но нужного так и не нашёл. Попробовал Как не нашел? Там же прямым текстом написано:
The Bitmap class inherits from the Image class. The Image class provides methods for loading and saving vector images (metafiles) and raster images (bitmaps). The Bitmap class expands on the capabilities of the Image class by providing additional methods for creating and manipulating raster images.
> картинки (а именно функция DrawImage на это жалуется). Вот > мой код: > Image *capcha = new Image(lpwszImage);
Bitmap *captcha = new Bitmap(lpwszImage);
---
Все
ЗЫ: Слово captcha пишется не совсем так как у тебя.
ЗЗЫ: У тебя ни хрена не получится. Можешь попробовать OpenCV или VXL, но даже с ними у тебя не получится.
|
| |
Вот блин, и правда работает. Вроде перед этим пробовал такую... 14.09.09 08:38
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
Вот блин, и правда работает. Вроде перед этим пробовал такую комбинацию и она не пахала. Трудно быть по пояс деревянным.
PS. Мне не для распознавания капчи это надо.
|
|
|