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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.02.2009, 19:21
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 1  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
По умолчанию Запись изображения в Clipboard

Цинковские методы Clipboard работают только с текстом.
Задача же в том, чтобы поместить изображение в Clipboard для последующей вставки, например, в Word.
Пока еще не знаю с какой стороны подойти и соответственно не знаю откуда брать картинку (то ли это будет скриншот-битмапа, то ли просто мувик если возможно, то ли вообще внешний файл, который потом забрасывается в Clipboard). Может даже такая последовательность: снимаем скриншот с мувика (хотя с мувика не выйдет - только с приложения) mdm.Image.ScreenCapture.movieAreaToBmp далее этот файл не знаю как забрасываем в Clipboard ...

Старый 02.02.2009, 20:56
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 2  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
а кто мешает написать dll ,с экспортом API по работе с Clipboardom ? вобще поиск конечно рулит, например на тему "windows API и буфер обмена" в яндексе вторая ссылка ,ведет например сюда где есть пример реализации, на visual basic, собственно если вы знакомы с win api и с стороними языками програмирования, то у вас не составит проблемы, написать dll на удобном для вас языке

zinc прекрасно работает с dll создайте в своей dll ,нужные API, сделайте export и пользуйтесь в zince

PS если что, могу завтра к вечеру написать на ассемблере dll
__________________
на каком языке вы пишите?
а на каком нужно?

Старый 02.02.2009, 21:54
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 3  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от darksranger Посмотреть сообщение
zinc прекрасно работает с dll создайте в своей dll ,нужные API, сделайте export и пользуйтесь в zince
darksranger, я немного понимаю, что Цинк работает с dll, но не понимаю, какая последовательность событий будет происходить? Одно дело, Цинк сохранит битмапу во внешний файл, далее запустит dll и та подхватит этот внешний файл уже в Clipboard - это я еще могу представить. Мне этот вариант не особо нравиться.
Другое дело, ФП в Цинке например генерит битмапу. Как эту битмапу достанет из ФП Цинка dll-ка? Так сказать на лету? (это то, что мне нравится) Вот этого я не понимаю.

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

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Можно сделать так:

- по типу сохранения битмапы на сервер загнать ее в стринг с помщью getPixel();
- получившийся стринг, типа "0FD08E1F..." отдать цинку, т.е. длл;
- в длл раcпарсить стринг в реальный байт-аррай;
- получившийся байт-аррай сконвертить в графический формат .jpg, GDI+ в помощь;
- сунуть получившуюся картинку в клипбоард, ну или там в файл, как угодно.

Одно могу сказать точно - пункт первый при большой битмапе во флэше будет сильно тормозить. Остальное будет достаточно быстро. Не знаю, как в AS3, там, наверно, пошустрее должно быть...
Я так делал, получалось, правда, сохранял картинку в файл .png c прозрачностью, а не в клипбоард, но это несущественно. Большая битмапа (~1000х1000) сохранялась примерно секунд надцать.
Замечу, еще, что речь идет именно о битмапе, а не о скрине окна.
Скрин окна положить в клипбоард будет побыстрее, само-собой, но только скринить надо не цинком, а опять же из длл, с помощью специально для этого случая написанной функции, родные цинковские только в файл могут сохранять.
Сюда можно привесить какую-то обработку скрина (байт-аррая), придется малость попотеть с разными перекодировщиками-конвертировщиками-фильтрами. Вобщем, возможностей тут масса. Можно, например, склеить пару-тройку скринов, разрезать, поменять цветовые характеристики... фотошоп, одним словом.


Последний раз редактировалось alexcon314; 02.02.2009 в 23:08.
Старый 03.02.2009, 01:23
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 5  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
alexcon314, а скрин можно снять с неактивного/скрытого окна? Цинк ведь может дополнительные окна открывать?

PS Для AIR есть такая фишка, как запись битмапы в clipboard, а вот в Цинке не дотумкали

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

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Можно, в принципе. Вспомнил вистовскую фичу, когда при наведении на кнопку в таскбаре, подсвечивается уменьшенная копия свернутого в данный момент окна с динамически обновляемым содержанием. Только как в дополнительное окно, скрытое оно или не скрытое, ты отрисуешь нужную графику, ту же битмапу? Ты же ее в основном окне как-то формировать будешь... Можно в дополнительную форму вставить swf-лоадер какой-то...но откуда грузить? Непонятны перспективы..

Старый 03.02.2009, 19:12
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 7  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
chingachgoog я и имел виду, то что описал alexcon314
тоесть принцип ,конечно же передачи на лету в dll, которая уже все сделает ... )))
__________________
на каком языке вы пишите?
а на каком нужно?

Старый 03.02.2009, 19:25
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 8  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
"На лету" - это когда dll залезет внутрь ФП и распотрошит битмапу. А когда передавать во вне строку-описание - это вовсе "не на лету". Тут быстрее будет запись во внешний файл, откуда уже dll перебросит в клипбоард. Но это потенциальное поле для проблем с безопасностью в Виндусе.

Потому возможность загрузить swf/картинку в новое скрытое окно в Цинке и сразу с помощью dll скопировать ее в клипборд пока наиболее интересна.

Старый 03.02.2009, 22:54
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 9  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
брррр, что то мы совсем не о том
ФП, а точнее приложение, при запросе будет вызывать API функцию из dll и передавать ей строку, как раз токи и на лету
я конечно не разбирал ,как zinc создает приложение ,но что то мне подсказывает ,что он в таких случаях ,просто добавляет в полученный файл код типа

push картинка например в строке
call (api)

если это не налету то я наверно в танке

подсказывает мне то, что получившийся файл является обычным приложением ... а проще всего внедрить в него работу с dll это по стандартной схеме

кладем в стек нужные данные
вызываем а точнее переходим на полученный адресс
радуемся жизни
__________________
на каком языке вы пишите?
а на каком нужно?

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

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
К несчастью, залезть "внутрь плеера" из длл очень и очень геморно. Дело в том, что не смотря на то, что длл хоть и сидит в адресном пространстве процесса, заполучить указатели на нужные интерфейсы (плеера) из нее, не имея информации как эти итерфейсы инициализировались ... эээ .. словом, можно, но геморно очень. Это отдельная задача, по сложности превосходящая, то что было предложено вначале. Может, я, конечно, ошибаюсь, но не думаю, что сильно...
Я вот что подсмотрел в f-in-box'e. Загрузка данных в плеер из ресурсов, скажем, flv.
Там это реализуют примерно так: во флэше создают NetStream, ловят указатель на него в оболочке, когда плеер его создаст (это просто стрим для закачки данных), и пихают в этот стрим свой flv, предварительно вынутый из ресурсов.
На том же принципе основан исходник с С++ - законцовкой LocalConnection. Это я к тому, что для выгрузки битмапы можно соорудить что-то навроде..
Однако, f-in-box САМИ хостят плеер, им и карты, то бишь СОМ-интерфесы плеера, в руки. А тут...
С отрисовкой в скрытое окно... я тут покумекал.., вобщем я бы за это не взялся. Слишком вычурная конструкция, а значит, скорее всего бесполезная.


Последний раз редактировалось alexcon314; 04.02.2009 в 02:38.
Создать новую тему Ответ Часовой пояс GMT +4, время: 15:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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