Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2010, 14:15   #1
kSower
Пользователь
 
Аватар для kSower
 
Регистрация: 22.04.2010
Сообщений: 19
Вопрос PNG24

Есть png картинка с прозрачностью, загружается в TPNGObject.
Как перерисовать каждый пиксел (и прозраность тоже) на новый TPNGObject, при этом изменяя цвет некоторых из них(прозрачность никак не должна затрагиваться, т.е. работать только с одним слоем RGB)? Подскажите что-нибудь, пожалуйста
Помогу с bass.dll новичкам.
ICQ: 588911177

Последний раз редактировалось kSower; 04.07.2010 в 14:19.
kSower вне форума Ответить с цитированием
Старый 05.07.2010, 12:22   #2
x128
Форумчанин
 
Регистрация: 03.02.2010
Сообщений: 178
По умолчанию

Для начала скопируй изображение методом assign далее изменяй все, что нужно, либо через Canvas.Pixels, либо через Scanline.
x128 вне форума Ответить с цитированием
Старый 05.07.2010, 19:26   #3
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

м... Разве в PNG24 есть полупрозрачность?
У меня кажется тоже TPNGObject, только никак не могу разобраться как в нём узнавать битность изображения... =(
Цитата:
прозрачность никак не должна затрагиваться, т.е. работать только с одним слоем RGB
В этом классе RGB-картинка и маска полупрозрачности кажется и так вроде отдельно хранятся...

Что именно нужно сделать с изображением? Если конвертировать в Bitmap, то примерно так как сказал x128...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 05.07.2010, 22:12   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Наверное таки нет прозрачности, не зря же он 24, т.е. 24 битный. А вот про слои не знаю. А он вообще полноценно поддерживает PNG? Я про TPNGObject.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 06.07.2010, 01:43   #5
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Не уверен... Когда я нашел офф.сайт (на СурсФордж вроде), то там вообще пусто оказалось - ни самого компонента ни мануалов, на каком-то народовском сайте еле раскопал компонент...

А что значить "полноценно"?
Вот где битность посмотреть так и не нашел...

Цитата:
Как перерисовать каждый пиксел (и прозраность тоже) на новый TPNGObject
Хм... То есть не нужно его на чём-то рисовать или конвертировать?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 06.07.2010, 12:44   #6
x128
Форумчанин
 
Регистрация: 03.02.2010
Сообщений: 178
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение
м... Разве в PNG24 есть полупрозрачность?
У меня кажется тоже TPNGObject, только никак не могу разобраться как в нём узнавать битность изображения... =(
В PNG24 может быть прозрачность и в PNG8 тоже. Вся нужная информация находится в заголовке.

Header.ColorType
1.png

Header.BitDepth
2.png
x128 вне форума Ответить с цитированием
Старый 06.07.2010, 15:03   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

не пахнет это RGBQuad'ом(RGBA).
в 24-е бита не пишется альфа, разве что константный цвет.
или слои.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.07.2010, 17:54   #8
x128
Форумчанин
 
Регистрация: 03.02.2010
Сообщений: 178
По умолчанию

в TPNGObject доступ к альфе осуществляется через AlphaScanline для полноцветных изображений и в градациях серого, для палитровых через tRNS чанк.
x128 вне форума Ответить с цитированием
Старый 06.07.2010, 18:23   #9
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Не уверен... Когда я нашел офф.сайт (на СурсФордж вроде), то там вообще пусто оказалось - ни самого компонента ни мануалов, на каком-то народовском сайте еле раскопал компонент...
В версиях с 2009 вроде (раньше не уверен, я с семерки сразу на 2009 перескочил), он есть в поставке, автор им разрешил добавлять в дистрибутив его, а в исходниках да, вроде ссылка на сорсфордж насколько я помню.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц