Главная страница
    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.48 MB
Время: 0.006 c
11-1205307227
zhirik
2008-03-12 10:33
2009.08.09
Как перетаскивать форму за ее поверхность


2-1245049095
DDR2
2009-06-15 10:58
2009.08.09
Найти все ссылки


3-1225445959
dmitry_12_08_73
2008-10-31 12:39
2009.08.09
Сохранение курсоров в TDBGrid


15-1243134920
ggg
2009-05-24 07:15
2009.08.09
Парсер XML


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