![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Привет, а Великий All!
Вопрос по библиотеке Graphics32. Как там можно создавать миниатюрные копии изображений (jpg, bmp, png)? Ни в примерах, ни в справке не могу найти. Хотел сам попытаться
но.....
|
||||
|
|||||
14SatanA88 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
могу посоветовать использовать ресайз (либа Vampyre Imaging Library)
и использовать такого рода функцию
или устраивает только Graphics32? Это сообщение отредактировал(а) 14SatanA88 - 31.8.2011, 08:15 |
||||
|
|||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
В общем сам он не имеет отношения к загрузке и сохранению файлов и использует стандартные классы или те что зарегистрированы в делфи. Собственно uses jpeg и должно грузить. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
А как уменьшить пропорционально?
Добавлено через 56 секунд Есть SetSize(NewWidth, NewHeight), но это не совсем то. Добавлено через 2 минуты и 36 секунд
В выходном файле только чёрный квадрат. Добавлено через 4 минуты и 18 секунд 14SatanA88, в твоём коде тоже нужно указывать конкретные значения ширины и высоты, а значит это не пропорциональное изменение размера. |
|||
|
||||
14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
||||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 2 Всего: 68 |
Это сообщение отредактировал(а) ~FoX~ - 1.9.2011, 08:59 |
|||
|
||||
Akella |
|
||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Я использовал для подсчёт отношения округление Round. Так более просто и мне понятнее. Не понимаю, зачем такие сложности?
На примере JPG
На примере BMP
На примере PNG
Добавлено @ 11:17 Вы мне скажите, как мне GR32 победить? Почему на выходе квадрат Малевича? Мне нужно создавать эскизы фотографий на лету, перед загрузкой в таблицу, т.к. в таблицу я загружаю эскизы. Или StretchBlt достаточно шустрая процедура? |
||||||
|
|||||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 2 Всего: 68 |
||||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
||||
|
||||
Alexx82 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 7.9.2011 Репутация: нет Всего: нет |
Может быть потому что ты классу (TBitmap) предназнченному для работы с файлами .bmp пытаешься подсунуть .jpg файл |
||||
|
|||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Не знаю, может быть. Я забросил GR32.
|
|||
|
||||
sg729 |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.5.2009 Репутация: нет Всего: 1 |
В FAQ есть намек на решение этой задачи. Смысл в том, что нужно создавать дополнительный объект TBitmap32 и на нем отрисовывать картинку из исходного TBitmap32 : http://graphics32.org/wiki/FAQ/Resampling
Примерно вот так можно отресайзить :
Здесь w, h - размеры которые надо получить. Конечно, желательно еще добавить try ... except как полагается. Способ ресамплинга задается тоже по чудному, примерно так:
при этом никакого KernelResampler.Free вроде бы не нужно. Это сообщение отредактировал(а) sg729 - 20.4.2012, 20:18 |
||||||||||
|
|||||||||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
спасибо
а главное вовремя ![]() Добавлено через 37 секунд сидел перед монитором, ждал, пока ответят ![]() |
|||
|
||||
sg729 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.5.2009 Репутация: нет Всего: 1 |
Ну что поделать ![]() ![]() Только вчера увидел эту тему, да и сам занялся graphics32 с неделю тому назад... а с "черным квадратом Малевича" применительно к graphics32 судя по яндексу сталкивались многие. Пусть уж лучше будет здесь упоминание об этом, может облегчит кому-нибудь мучения ![]() |
|||
|
||||
goa_dreamer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.1.2008 Репутация: нет Всего: 1 |
(Для модераторов, можете перенести данное сообщение в соотствующую тему если нужно).
Задача: качественно изменить размер картинки с сохранением полутонов. После поиска данного решения, пересмотра вариантов функций сторонних разработчиков, решил проверить, а что же имеет в основе Delphi TImage, модуль Graphics.pas:
По-сути все задача с качественным изменением картинки заключается в задании условия DoHalftone, если вы вручную выставите DoHalftone := True, тогда SetStretchBltMode(ACanvas.FHandle, HALFTONE) - будет постоянным. Чтобы увидеть разницу с использованием стандартного изменения картинки, вы можете изменить SetStretchBltMode(ACanvas.Handle, STRETCH_DELETESCANS) на SetStretchBltMode(ACanvas.Handle, STRETCH_ORSCANS), или на любую StrechMode-переменную из документации функции SetStretchBltMode. Это сообщение отредактировал(а) goa_dreamer - 3.5.2012, 11:01 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |