Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

масштабирование изображений   Найти похожие ветки 

 
Strech   (2005-06-23 02:07) [0]

Приветствую, Мастера! Кто нибудь знает алгоритмы сжатия/растяжения цветных изображений? Функция StretchBlt слишком сильно искажает цвета и появляются артефакты. Не помогает даже режим SetStretchBltMode(DC, COLORONCOLOR)


 
WondeRu ©   (2005-06-23 15:34) [1]

покажи код... может DC не тот?


 
AYA   (2005-06-23 21:12) [2]

Смотри исходники Graphics32, JanFX - там примеры с использованием сглаживания при растяжении, и множество других визуальных эффектов


 
Strech   (2005-06-24 02:15) [3]

куски кода, использую DirectX:

FDDSBack: IDirectDrawSurface7;
hBMP: HBITMAP;
hdcImage, DC: HDC;

 hBMP := LoadImage(...); //картинка 200х200

 if FDDSBack.GetDC(DC) = DD_OK then
 begin
   hdcImage := CreateCompatibleDC(DC);
   SelectObject(hdcImage, hBMP);
   SetStretchBltMode(DC, COLORONCOLOR);
   StretchBlt(DC, 0, 0, 100, 100, hdcImage, 0, 0, 200, 200, SRCCOPY);
   DeleteDC(hdcImage);
   FDDSBack.ReleaseDC(DC);
 end;
 DeleteObject(hBMP);

если выводить кусок картинки 100х100 - все в норме, а при масштабировании появляются лишние точки. Например, если общий тон картинки фиолетовый, то появляется много красных точек. В исходном изображении красных точек вообще нет. Причем если убрать режим COLORONCOLOR, то артефактов еще больше.

>AYA исходники посмотрю, спасибо


 
Sapersky   (2005-06-24 12:04) [4]

Большинство современных карт делают вполне приличный Stretch при блиттинге. Т.е., как вариант, создать маленькую поверхность, скопировать в неё, оттуда Blt в большую.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.033 c
2-1129801370
webpauk
2005-10-20 13:42
2005.11.13
Рисунок поверх всего


14-1129756232
Германн
2005-10-20 01:10
2005.11.13
Блиц-опрос на тему компилляторов


9-1120178057
Strech
2005-07-01 04:34
2005.11.13
Edit в DirectX


1-1130065186
Smarty
2005-10-23 14:59
2005.11.13
Помогите с Invalid floating point operation!!


2-1130224792
Quest
2005-10-25 11:19
2005.11.13
Работа с Формами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский