не знаю можно ли тут постить ссылки на другие ресурсы...
По словам delphi+LanczosFilter и по delphi+bicubic можно легко взять очень интересные процедурки для качественного ресампла битмапов. Lanczos, конечно, лучше всех в даунскейле.
Вопрос про скорость.
Если я вывожу картинку средствами GDI+ примерно так
currGPI := TGPImage.Create(filename);
...
готовлю rect
...
gra := TGPGraphics.Create(BOX.Canvas.Handle);
gra.SetInterpolationMode(InterpolationModeHighQualityBicubic);
gra.DrawImage( currGPI,
rect,
0, 0, // upper-left corner of source rectangle
w, // width of source rectangle
h, // height of source rectangle
UnitPixel);
gra.free;
то все очень быстро даже на довольно больших файлах.
А если я открою файл через GDI+, перегружаю его в TBitmap и потом ресамплю теми процедурками из сети, даже переписанными немного для оптимизации, то разница в скорости ощутимо заметна на больших файлах.
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
26-11-2020 02:42 | Вопрос к автору: запрос дополнительной информации
Что значит "открою файл через GDI+, перегружаю его в TBitmap" ? Не понятно что вы с чем сравниваете. Для одного варианта приведен участок кода, а для другого все "на словах", такое подозрение что сравниваете вариант когда в одном случае данные берутся из памяти, а во втором читаются с диска.
20-10-2020 21:13 | Комментарий к предыдущим ответам
Void, на "открою файл через GDI+, перегружаю его в TBitmap" тратится очень мало времени, тормоза начинаются именно на процедурках, если большие файлы, на маленьких не заметно совсем.
>>>У меня есть подозрение, что GDI+ выводит на экран картинки с использованием аппаратного ускорения
Я читал обратное - что он чисто софтварный и потому по скорости проигрывает обычному GDI (что заметно). Мне кажется дело в том, что автор сравнивает однопроходное рисование и "открою файл через GDI+, перегружаю его в TBitmap и потом ресамплю теми процедурками из сети"
17-10-2020 07:01 | Комментарий к предыдущим ответам
У меня есть подозрение, что GDI+ выводит на экран картинки с использованием аппаратного ускорения (это как бы моё мнение). А потому, рекомендую найти машину без нормального ускорителя и сравнить производительности. Думаю, что при отсутствии аппаратного масштабирования, GDI+ если и будет опережать вашу программу, то всего на несколько процентов.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.