Показать сообщение отдельно
Старый 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. Причина: неточность в коде