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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.05.2011, 20:23
fast_andrew911 вне форума Посмотреть профиль Отправить личное сообщение для fast_andrew911 Найти все сообщения от fast_andrew911
  № 1  
Ответить с цитированием
fast_andrew911

Регистрация: May 2011
Сообщений: 2
По умолчанию Сравнение двух картинок

Посоветуйте, пожалуйста, алгоритм сравнения двух изображений. Задача такая - загружаю изображение из интернета. Если его нет в базе то добавляю его туда с каким- то уникальным ключом. Если есть то фиксирую, что изображение уже есть в базе.

Код AS3:
var loader:Loader=new Loader();
var rec:URLRequest=new URLRequest();
rec.url="ссылка на изображение";
 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,imageLoaded);
loader.load(rec);
 
function imageLoaded(e:Event){
 
	var key:String=MD5.encrypt(Base64.encode(PNGEncoder.encode(Bitmap(loader.content).bitmapData)));
 
	trace(key);//для тестирования
 
}
Но тормозит жутко. И еще если тип изображения gif анимация. То flash сs5 вообще ничего не выдает. Хотя и ошибок нет.

Старый 22.05.2011, 23:06
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Еще бы оно не тормозило.
Вместо этого:
Код AS3:
Base64.encode(PNGEncoder.encode(Bitmap(loader.content).bitmapData))
Грузите как байты, через URLLoader, либо у Loader'a берите байты, это снизит нагрузку, но тормоза, скорее всего все равно будут. MD5 не самая быстрая штука.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 23.05.2011, 00:22
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 3  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
А чем в качестве проверки не подойдет пара "контрольная сумма + размер", например? Вроде пошустрее должно работать.
__________________
Поймай яблоко 2!

Старый 23.05.2011, 00:43
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Возьмите реализацию MD5 нашего комрада BloodHound. Работает в разы шустрее. Только байты loader.contentLoaderInfo.bytes хешируйте, а не монстроудозную конструкцию. Хотя, Вы будете оперировать не байтами изображения, а оберткой над ними.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 23.05.2011 в 00:46.
Старый 23.05.2011, 00:53
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 5  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Поэтому лучше сначала загрузить через URLLoader.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 23.05.2011, 09:54
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Не, не лучше. Политики иногда будут затыкать. Лучше Loader, а если нужны батики изображения, то формат DefineBits легко изучается.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 23.05.2011, 11:14
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 7  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Да, пожалуй.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 23.05.2011, 18:59
fast_andrew911 вне форума Посмотреть профиль Отправить личное сообщение для fast_andrew911 Найти все сообщения от fast_andrew911
  № 8  
Ответить с цитированием
fast_andrew911

Регистрация: May 2011
Сообщений: 2
По умолчанию ребята спасибо всем.

Огромное всем спасибо ребята. Особенно спасибо вам dimarik за библиотеку. Использовал ее и следующий код:
Код AS3:
import by.blooddy.crypto.MD5;
 
var byteArray:ByteArray=loader.contentLoaderInfo.bytes;
var key:String=MD5.hashBytes(byteArray);
Base64 не понадобилась даже. На картинках по 500-600 кб работает за 10-30мс. Попробовал одну 3,5Мб gif анимация. Сработала за 0.7сек. Но это у меня комп еще слабенький.
Пробовал подгружать одинаковые изображения с разных адресов. Хеш получатся одинаковый - все отлично. Правда если изменить размер, картинки то уже разный. А жаль...

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

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

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


 


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


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