Форум: "Начинающим";
Текущий архив: 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