Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
самый простой способ прорисовать битмап
 
В теме ,,сохранить картинку на поверхности окна...,,
мне посоветовали (привет MishaSt) способ прорисовки
битмапа на канве формы(на winapi конечно), я недавно рылся и нашёл наипростейший способ, он хотя и создан немного для других целей, в большинстве случаев, он будет намного удобнее, приведу отдельную процедуру:

procedure TurboDrawBitmap;
begin
 bmp := LoadImage(0, C:\test.bmp, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE);
 // грузим битмап в память
 brsh := CreatePatternBrush(bmp);
 // создаём заливку картинкой
 dc := GetDc(0);
 // получаем контекст поверхности экрана
 SelectObject(dc, brsh);
 // выбираем заливку
 Rectangle(dc, 0, 0, 100, 100);
 // собственно, рисуем
 DeleteObject(brsh);
 DeleteObject(bmp);
 DeleteDC(dc);
 // удаляем заливку, битмап, задем контекст из памяти
end;

способ кратчайший, создаём просто брашь, а потом рисуем.
Но новый косяк - как прорисовать к примеру jpeg картинку?
Обязательно ли использовать модуль jpeg?
 
нет не обязательно. Вообще Windows поддерживает только один формат *.dib остальные это допольнительные растровые форматы.
 
А как же можно загрузить стандартными средствами api ,
jpeg картинку?
 
Я ещё на RSDN встречался, что можно с помощью OLE это сделать. А чистым API - IMHO нельзя. (Я имею ввиду что создать OLE-объект можно на чистом API, однако объект - это не API, это объект)
 
Не, я то понимаю, что api это не обьект =))
Хотя это ещё как посмотреть, под каким ГРАДУСОМ =))) ежели градус за 40... =)
Я имел ввиду, что именно, какиенибудь стандартные APIшные функции для работы с jpeg, ну а раз нет, то придётся пытаться самому сделать. Тут выпал новый вопрос - хорошие доки по структуре, формату JPEG - файла.
Я перерыл гору сайтов, но везде лишь рассказывается о прелестях, толком структуры то и нет...
Может ... Попробовать разобрать сам jpeg.dcu?
Да надо попробовать...
 
Цитата

Тут выпал новый вопрос - хорошие доки по структуре, формату JPEG - файла
Ну что можно сказать? Желаю удачи с разбором!
Если просто так разобраться, для развлечения - то можно. А для того чтобы в программе jpeg выводить - глупо, выкинь в таком случае эту дурь из головы. Попробуй тут совместимости добейся с виндовой реализацией!

Формат JPEG, за пару минут нашёл:
http://www.codenet.ru/progr/formt/jpeg_00.php
http://sources.codenet.ru/index.php?cid=20

А про OLE вот, нашёл за пару минут.
http://www.rsdn.ru/article/qna/gdi/drawimg.xml
http://softmaker.com.ru/index.htm?http://softmaker.com.ru/su bscr/vcext/year2004/side_013.htm
http://forum.vingrad.ru/index.php?act=ST&f=1&t=6334&s=ea05e5 43ae13cb36f14e20ebd17022ac
 
Я как-то сайт делал на Флеше, и картинки там как-то странно отображались. При этом в IE и Acdsee они нормально отображались. Долго не мог вдуплить в чём дело. А потом понял - они были в формате CMYK. После того, как я их в RGB переконвертил всё стало ОК.

Отсюда мораль - лучше использовать OLE, и не мучаться...
 
Дискретное косинус преобразование!
Да тут есть над чем подумать =),
спасибо за информацию!
 
Я удачно разжимал jpeg с помошью ПО от independent jpeg group а так же GDI+ и CreateStreamOnHGlobal.
Страницы: 1
Читают тему