информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Все любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Microsoft сообщила о 44 миллионах... 
 Множественные уязвимости в VNC 
 Шестой Perl превратится в Raku,... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[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. Мне не для распознавания капчи это надо.
1






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2019 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach