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

Вниз

Разные результаты StretchBlt   Найти похожие ветки 

 
DevilDevil ©   (2009-05-29 14:49) [0]

Не буду вдаваться в подробности, но вызов StretchBlt одного изображения в разных проектах выдаёт разные результаты:
http://devilhome.narod.ru/1.jpg (хороший)
и
http://devilhome.narod.ru/2.jpg (нехороший)

В чём может быть дело???

p.s. в обоих случаях предварительно вызывается SetStretchBltMode(Dest, HALFTONE);


 
clickmaker ©   (2009-05-29 14:56) [1]

> в разных проектах

на разных компах или ОС?


 
DevilDevil ©   (2009-05-29 15:14) [2]

на одном компьютере в разных проектах


 
clickmaker ©   (2009-05-29 15:20) [3]

значит, исходные картинки разного качества


 
DevilDevil ©   (2009-05-29 15:24) [4]

один и тот же файл


 
Ega23 ©   (2009-05-29 15:31) [5]

Они же одинаковые???


 
DevilDevil ©   (2009-05-29 15:46) [6]

>Они же одинаковые???

нет. Особено заметно на шляпе


 
Sapersky   (2009-05-29 15:58) [7]

Может в этом дело:
Also note that SetBrushOrgEx must be called after setting the HALFTONE mode to avoid brush misalignment.
(из хелпа по SetStretchBltMode)
Хотя я не в курсе, как должно выглядеть brush misalignment, никогда не сталкивался.


 
clickmaker ©   (2009-05-29 16:17) [8]

> как должно выглядеть brush misalignment

видимо, как на шляпе )


 
DevilDevil ©   (2009-05-29 16:32) [9]

Не, к сожалению, не прокатило.
Сделал как в Graphics:

GetBrushOrgEx(Result.hDC, pt);
SetStretchBltMode(Result.hDC, HALFTONE);
SetBrushOrgEx(Result.hDC, pt.x, pt.y, @pt);


 
Sapersky   (2009-05-29 17:47) [10]

А чём вообще отличаются "хороший" и "плохой" проекты?
Главным образом в смысле методов использования TFastDIB, если это он.


 
DevilDevil ©   (2009-05-31 22:30) [11]

>А чём вообще отличаются "хороший" и "плохой" проекты?

Сам гадаю, чем принципиально.
"Хороший" - полностью VCL
"Плохой" - FastLib, IJL

В "Хорошем" используется обычный Canvas.CopyRect
В "Плохом" пробовал:
- FastDIB.StretchRect(...
- StretchBlt(FastDIB.hDC, ...
- C := TCanvas.Create; C.Handle := FastDIB.hDC; ... C.CopyRect(...

Результат во всех случаях один!

Пробовал SetStretchBltMode и для Dest и для Src.
Ещё перед вызовом копирования пробовал Set8087CW(Default8087CW)

Ребята, в чём дело ?


 
Sapersky   (2009-06-01 13:25) [12]

А при выводе через BitBlt результат одинаковый? Может, файл грузится по-разному.
В моём тесте масштабирования StretchBlt работает правильно?

Ещё такое замечание: FastDIB - всегда DIB, TBitmap может быть и DIB и DDB. Посмотри TBitmap.HandleType.


 
DevilDevil ©   (2009-06-10 23:59) [13]

Причина разных результатов обнаружена - я идиот!

В одном месте забыл поставить else... и производился левый метод.

Спасибо за помощь


 
antonn ©   (2009-06-11 01:37) [14]

ну хорошо хоть смелости хватило признаться :)


 
DevilDevil ©   (2009-06-11 14:32) [15]

в таких вещах смелость не нужна



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

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

Наверх




Память: 0.47 MB
Время: 0.004 c
1-1211807607
Jungle
2008-05-26 17:13
2009.08.09
"Правильно" преобразовать тип Variant


15-1244012984
oldman
2009-06-03 11:09
2009.08.09
Internet Explorer 8.0 Windows XP (yandex edition)


15-1244493008
Юрий
2009-06-09 00:30
2009.08.09
С днем рождения ! 9 июня 2009 вторник


15-1244484954
{RASkov}
2009-06-08 22:15
2009.08.09
Алгоритмы хеширования


8-1196371243
leonidus
2007-11-30 00:20
2009.08.09
Как отобразить одну картинку на другой?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский