Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.11.2008, 13:01
cyraxchel вне форума Посмотреть профиль Отправить личное сообщение для cyraxchel Найти все сообщения от cyraxchel
  № 1  
Ответить с цитированием
cyraxchel
"Аинслей"
 
Аватар для cyraxchel

Регистрация: Apr 2003
Адрес: Russia, Chelyabinsk
Сообщений: 359
Отправить сообщение для cyraxchel с помощью ICQ
Question mdm.Image.bmpToPng с прозрачностью

Доброго времени суток.
Наблюдаются какие-то странности в цинке третьей версии. Одна из задач моего приложения -- сохранять скрин экрана с последующей возможностью его загрузки в себя. Сохранять хочу в PNG с прозрачностью.
Поначалу все хорошо -- скриню, сохраняю в бмп, конвертирую в PNG с заданием прозрачного цвета "white".
Проверяю картинку -- пнг получился, но прозрачности нет. Для чистоты эксперимента открываю в фотошопе. Фотошоп ругается, что неверный формат файла и не открывает. Flash IDE так же ругается на файл и не импортирует его.
Кто-нибудь сталкивался с этим?
В их багрепорт отписал. Ответа пока нет.
Тестировал в 2.5 -- так конвертирует корректно. Хоть и с плохим качеством. Но 2.5 не могу использовать по техническим причинам (какой-то из модулей цинка с ошибкой, пофиксенной в третьей версии)

Использую цинк 3.0.3.
Тестировал так же в 3.0.11
__________________
Мы не съедобны.

Старый 12.11.2008, 15:27
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Если это и вправду баг версии (что вполне вероятно), то остается только ждать, пока его пофиксят.
Но вот это срабатывает у меня нормально: (Zinc 3.0.0, AS2, FP8)
Код:
mdm.Image.bmpToPng("c:\\curve.bmp", "c:\\curve.png", true, "white");
Качество не очень. Фотошопом открывается корректно, во Flash IDE импортируется, прозрачность есть.
.bmp-исходник, правда, был "рожден" не скрином цинка.


Последний раз редактировалось alexcon314; 12.11.2008 в 15:30.
Старый 12.11.2008, 16:29
cyraxchel вне форума Посмотреть профиль Отправить личное сообщение для cyraxchel Найти все сообщения от cyraxchel
  № 3  
Ответить с цитированием
cyraxchel
"Аинслей"
 
Аватар для cyraxchel

Регистрация: Apr 2003
Адрес: Russia, Chelyabinsk
Сообщений: 359
Отправить сообщение для cyraxchel с помощью ICQ
интересно, интересно получается..

делаю раз:
Код AS1/AS2:
mdm.Image.bmpToPng("e:\\test.bmp", "e:\\curve.png", true, "white");
Тестирую, работает.

делаю два:
Код AS1/AS2:
mdm.Image.ScreenCapture.movieToBmp("e:\\test.bmp");
mdm.Image.bmpToPng("e:\\test.bmp", "e:\\curve.png", true, "white");
Не работает. БМП создается, пнг -- нет.

делаю три (попробуем задержку):
Код AS1/AS2:
mdm.Image.ScreenCapture.movieToBmp("e:\\test.bmp");
var TM:Number = setInterval(this,"upd",5000);
upd = function() {
	mdm.Image.bmpToPng("e:\\test.bmp", "e:\\curve.png", true, "white");
	clearInterval(TM);
}
функция upd вызывается точно (тестировал выводом текста в текстовое поле).

Странно как-то и нестабильно...
__________________
Мы не съедобны.

Старый 12.11.2008, 18:05
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 4  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Видимо, mdm.Image.ScreenCapture.movieToBmp() аснихронно работает и
файл бмп просто не успевает выгрузиться на диск. Попробуйте в интервале проверять его существование (mdm.FileSystem.FileExists), а потом уже конвертить

Старый 12.11.2008, 22:13
cyraxchel вне форума Посмотреть профиль Отправить личное сообщение для cyraxchel Найти все сообщения от cyraxchel
  № 5  
Ответить с цитированием
cyraxchel
"Аинслей"
 
Аватар для cyraxchel

Регистрация: Apr 2003
Адрес: Russia, Chelyabinsk
Сообщений: 359
Отправить сообщение для cyraxchel с помощью ICQ
Проверку на существование файла проходит превосходно. Но результат то же. %(
Причем даже попытался по хитрому -- проверяет, что бмп файл есть. Затем попытка создать пнг и проверка на существование пнг. Если пнг нет, то пытаться снова.
Результат аналогичен..
Смотрю в сторону ImageMagick конвертера..
__________________
Мы не съедобны.

Старый 12.11.2008, 23:40
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 6  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
А если тупо :
Код:
mdm.Image.ScreenCapture.movieToBmp("e:\\test.bmp");
mdm.Application.delay(5000);
mdm.Image.bmpToPng("e:\\test.bmp", "e:\\curve.png", true, "white");


Последний раз редактировалось alexcon314; 18.11.2008 в 15:59.
Старый 13.11.2008, 14:28
cyraxchel вне форума Посмотреть профиль Отправить личное сообщение для cyraxchel Найти все сообщения от cyraxchel
  № 7  
Ответить с цитированием
cyraxchel
"Аинслей"
 
Аватар для cyraxchel

Регистрация: Apr 2003
Адрес: Russia, Chelyabinsk
Сообщений: 359
Отправить сообщение для cyraxchel с помощью ICQ
нет. И так тоже не работает.
Пошел искать сторонний конвертер.
Есть какие на примете?
__________________
Мы не съедобны.

Старый 18.11.2008, 15:47
cyraxchel вне форума Посмотреть профиль Отправить личное сообщение для cyraxchel Найти все сообщения от cyraxchel
  № 8  
Ответить с цитированием
cyraxchel
"Аинслей"
 
Аватар для cyraxchel

Регистрация: Apr 2003
Адрес: Russia, Chelyabinsk
Сообщений: 359
Отправить сообщение для cyraxchel с помощью ICQ
По умолчанию Итак, промежуточный итог.

Т.к. этот метод не работает, использую следущую схему:
Делаю скрин в бмп.
С помощью утилиты ImageMagick (элементы converrt.exe, mogrify.exe) конвертирую файл в png со следующими параметрами:
Код:
convert.exe C:\mg.bmp -format PNG32 C:\img.png
mogrify.exe -transparent white -fuzz 10% С:\img.png
где в первой строке происходит непосредственно сама конвертация файла с указанием формата PNG32 (с прозрачностью), а во второй: задание цвета, который будет прозрачным (-transparent white) и указанием диапазона разброса цвета (-fuzz 10%). Для моих целей fuzz подошло примерно 10%, т.к. при скриновании (а вероятнее, при пережимании) не вся изначально белая область рисунка осталась такой. Часть поменяла свой цвет, что прекрасно было видно в любом редакторе после конвертации.

Обе команды вызываются через mdm.System.execStdOut

Результат промежуточный, т.к. нужно было быстро реализовать идею. В дальнейшем планирую делать немного иначе и вообще отказаться от mdm.Image.ScreenCapture, а конвертировать данные в битмапдату, передавать ее опять же через exeStdOut, но уже своему приложению-конвертеру PNG, написаному на AS3 и уже из нее загонять в бинарный файл. Проблема только в том, что сам проект на AS2, и, похоже, придется повозиться с передачей этих бинарных данных.
Как будут результаты -- напишу.
Надеюсь, кому-то будет полезно.
__________________
Мы не съедобны.


Последний раз редактировалось cyraxchel; 18.11.2008 в 16:00. Причина: неточность в коде
Старый 18.11.2008, 16:03
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 9  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
ну, вообще можно еще длл к цинку прикрутить, где юзается GDI API. Скринить, конвертить и сохранять можно. У меня был где-то тут пример для цинка 2.5.0.34.
...
нашел линк http://flasher.ru/forum/showthread.php?t=112181


Последний раз редактировалось alexcon314; 18.11.2008 в 16:09.
Старый 18.11.2008, 16:10
cyraxchel вне форума Посмотреть профиль Отправить личное сообщение для cyraxchel Найти все сообщения от cyraxchel
  № 10  
Ответить с цитированием
cyraxchel
"Аинслей"
 
Аватар для cyraxchel

Регистрация: Apr 2003
Адрес: Russia, Chelyabinsk
Сообщений: 359
Отправить сообщение для cyraxchel с помощью ICQ
Согласен. Если она позволяет битмапдату AS2 в пнг загонять, то вообще красота будет. А иначе что либа, что внешний конвертер -- одинаково придется извращаться с передачей данных.
__________________
Мы не съедобны.

Создать новую тему Ответ Часовой пояс GMT +4, время: 08:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
bmptopng , mdm , zinc
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 08:50.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.