|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.01.2012, 22:49 | #1 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 215
|
Отразить PNG Image
Здравствуйте. Возникла необходимость отразить картинку типа PNG. Есть ли рабочие алгоритмы? Как вариант можно модифицировать этот, но не выходит. Если кто знает - подскажите пожалуйста.
Заранее спасибо.
[Ferox]
|
15.01.2012, 23:53 | #2 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
а компонент Image вам не поможет? или у вас старая среда разработки?
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
|
15.01.2012, 23:58 | #3 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 215
|
Разве Image умеет зеркально отражать картинки? Не видел такого. Delphi 7 среда.
[Ferox]
|
16.01.2012, 02:03 | #4 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 215
|
Разобрался. Может пригодится кому.
Способ 1. Подключаем GDI+, далее Код:
Код:
Код:
[Ferox]
|
16.01.2012, 08:46 | #5 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,886
|
Всю жизнь пользуюсь этим (сваял, поразмыслив над разными примерами из сети), и не надо канвасов
Код:
Первая очевидная это пропуск a.free Вторая - не очевидная: a.ToBitmap - создаёт битмап (хотя, чтобы быть 100% уверенным, надо глянуть в исходники, мной используемая либа SynGDIPlus -создаёт), без присвоения куда-либо он не будет уничтожен, надо использовать промежуточный битмап, чтобы его чистить Последний раз редактировалось phomm; 16.01.2012 в 09:06. |
16.01.2012, 11:34 | #6 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
а что если записать пиксели строки в обратном порядке?
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
|
16.01.2012, 16:05 | #7 | |
Ещё не
Форумчанин
Регистрация: 04.01.2010
Сообщений: 517
|
Цитата:
Код:
Воображение важнее, чем знания. (Albert Einstein)
|
|
16.01.2012, 17:03 | #8 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 215
|
Сегодня сел со свежей головой, что ж за бред то я вам написал. Способ с GDI+ использует метод ToBitmap, следовательно ни о какой прозрачности речи не идёт, всё прозрачное заливается белым.
phomm, признаюсь, что протестировал довольно поверхностно, что-то у меня он даже на обычных bmp картинках даёт сбои - на вертикальном отражении поехал масштаб, на горизонтальном всё в норме. Png не держит, при попытке заменить типы изображение ломается. В общем не судите строго, не смог запустить корректно у себя. chertovich, так и делаем, проблема в том, что у Png 2 слоя - один для цвета, а второй маска прозрачности, а вот как подступиться к ним я не понял. Хотя вот алгоритм dmitriegorovih вроде как всё прояснил. dmitriegorovih, спасибо Вам, я немного криворук и испоганил Ваш алгоритм, этот работает как часы, выдаёт ~16 мс на том же изображении.
[Ferox]
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
EPNGMissingMultipleIDAT. This PNG Image is invalid because it has missing image parts | kardinal94 | Общие вопросы Delphi | 0 | 08.10.2010 20:31 |
image на png | dmitriegorovih | Мультимедиа в Delphi | 8 | 20.07.2010 16:31 |
PNG+Image+GetRValue=Ошибка | Levsha100 | Мультимедиа в Delphi | 4 | 24.04.2009 23:20 |
Прочитать png формат в image | Sin3v | Общие вопросы Delphi | 1 | 18.07.2008 11:45 |
PNG в Image | Grey Fox | Помощь студентам | 1 | 02.08.2007 12:24 |