![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
Подскажите, пожалуйста, как можно получить значение альфа канала для отдельного пикселя изображения?
|
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
||||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
В тех примерах самый лучший результат :
Image dimensions: height = 348, width = 349 shade = 238, 238, 238 shade = 255, 255, 255 shade = 255, 255, 255 shade = 238, 238, 238 shade = 238, 238, 238 shade = 238, 238, 238 Image dimensions: height = 348, width = 349 shade = 204, 204, 204 shade = 170, 170, 170 shade = 136, 136, 136 shade = 187, 187, 187 shade = 153, 153, 153 Он пишет "Не повезло.","Тем не менее не работает. Что мне не хватает?" и т.п. И альфа таки нету. Перевод был машинный, может я что не понял. Это сообщение отредактировал(а) Сisa - 1.9.2014, 18:56 |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
в смысле нет альфы?
|
|||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
Альфа в рисунке.
А значение альфы для отдельного пикселя как получить в переменную perl? |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
ачто у вас именно не получилось?
приведите код. |
|||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
Для рисунка в первоначальном варианте альфа пишет значение 0. В GIMPе пытаюсь добавить прозрачность в рисунок, чтобы считать не 0, и теперь dzsoft пишет "Cannot load Imager=HASH(0x348afc): not a BMP file at alfa.pl line 8" Присоединённый файл ( Кол-во скачиваний: 1 ) ![]() |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
может у вас с форматом проблемы?
# file /tmp/*.bmp /tmp/14.bmp: PC bitmap, Windows 3.x format, 591 x 789 x 16 /tmp/a14.bmp: data # |
|||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
Поищу готовые фото с прозрачностью, чтобы получить не 0.
|
|||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
arto, спасибо!
Для иконок прозрачность отлична от 0. Например: shade = 62, 63, 72, 249 shade = 32, 36, 45, 233 И было бы вообще класс если бы так же читались rgba не только форматы: formats bmp, ico, pnm, raw, sgi, tga available for reading, но и format 'jpeg', 'png' а они not supported для Imager. |
|||
|
||||
Сisa |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
+ setpixel и новый рисунок, а как его сохранить? явно не так:
Добавлено через 13 минут и 49 секунд
Ура! Есть. Остался вопрос только с jpg, png. |
||||||
|
|||||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
у меня imager показывает
# perl -MImager -le 'while(($a,$b)=each%Imager::formats){print"$a: $b"}' ifs: 1 pnm: 1 bmp: 1 tga: 1 raw: 1 png: 1 tiff: 1 jpeg: 1 ft2: 1 # а у вас? |
|||
|
||||
DProf |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 28.9.2012 Репутация: 1 Всего: 1 |
Вы можете также попробовать другие библиотеки, они мощнее чем Imager
http://search.cpan.org/~lds/GD-2.53/GD.pm http://www.graphicsmagick.org/perl.html рекомендую GD |
|||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
# perl -MImager -le 'while(($a,$b)=each%Imager::formats){print"$a: $b"}'
perl -MImager -le 'while(($a,$b)=each%Imager::formats){print"$a: $b"}' не показывает ничего. Такой код:
пишет : try png try gif try jpeg try tiff try ppm try ico и ничего не сохраняет. хотя в нем и присутствует в списке тип файла иконка, так что сохраняю только $image->write(file => "foo.ico"). Значит $Imager::formats не работает, возможно версия другая какая то у меня. Придется пробовать другие библиотеки для jpg, png. Возможно GD. Это сообщение отредактировал(а) Сisa - 3.9.2014, 23:05 |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
что именно вы сохраняете?
|
|||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
Добавлено через 9 минут и 7 секунд получаю: ... 100 x 35 --- shade = 32, 36, 45, 233 ---- shade = 32, 36, 45, 112 100 x 36 --- shade = 44, 55, 66, 213 ---- shade = 44, 55, 66, 112 100 x 37 --- shade = 83, 110, 122, 199 ---- shade = 83, 110, 122, 112 100 x 38 --- shade = 110, 129, 150, 196 ---- shade = 110, 129, 150, 112 100 x 39 --- shade = 109, 131, 155, 199 ---- shade = 109, 131, 155, 112 100 x 40 --- shade = 107, 130, 155, 202 ---- shade = 107, 130, 155, 112 ... и пару новых файлов иконок, третьего же нового файла нет. |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
# perl -MImager -le '$a=Imager->new;$a->read(file=>$ARGV[0])or die $a->errstr;foreach(keys%Imager::formats){$a->write(file=>$ARGV[1].".$_",type => $_) or warn $a->errstr}' 14.bmp 1
# file 1.* 1.bmp: PC bitmap, Windows 3.x format, 591 x 789 x 24 1.ft2: empty 1.ifs: empty 1.jpeg: JPEG image data, JFIF standard 1.01 1.png: PNG image data, 591 x 789, 8-bit/color RGB, non-interlaced 1.pnm: Netpbm PPM "rawbits" image data, size = 591 x 789 1.raw: data 1.tga: Targa image data - RGB - RLE 591 x 789 1.tiff: TIFF image data, little-endian # соберите сами себе Imager. |
|||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
Н-да, соберите сами себе...
Windows XP, perl 5.14.2, activestate free: ppm.exe : Imager 092 - remove Imager-1.000 - install а дальше в списке доступных программ ни png, ни jpg для Imager. http://search.cpan.org/~tonyc/Imager-1.000/Imager.pm Imager-File-JPEG-0.88.tar.gz Imager-File-PNG-0.91.tar.gz - эти не инсталлируются. |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
если так необходим windowsxp, поставте виртуалку и туда линух.
там сможете собрать себе какой надо Imager. |
|||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
я ж только учусь! линух многовато будет для начала
![]() arto, спасибо! |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
хвост надо рубить сразу, а не кусками, как добрый хозяин.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |