![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2011
Сообщений: 2
|
Посоветуйте, пожалуйста, алгоритм сравнения двух изображений. Задача такая - загружаю изображение из интернета. Если его нет в базе то добавляю его туда с каким- то уникальным ключом. Если есть то фиксирую, что изображение уже есть в базе.
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);//для тестирования } |
|
|||||
|
Еще бы оно не тормозило.
Вместо этого: Грузите как байты, через URLLoader, либо у Loader'a берите байты, это снизит нагрузку, но тормоза, скорее всего все равно будут. MD5 не самая быстрая штука.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Lorem ipsum
|
А чем в качестве проверки не подойдет пара "контрольная сумма + размер", например? Вроде пошустрее должно работать.
__________________
Поймай яблоко 2! |
|
|||||
|
.
|
Возьмите реализацию MD5 нашего комрада BloodHound. Работает в разы шустрее. Только байты loader.contentLoaderInfo.bytes хешируйте, а не монстроудозную конструкцию. Хотя, Вы будете оперировать не байтами изображения, а оберткой над ними.
Последний раз редактировалось dimarik; 23.05.2011 в 00:46. |
|
|||||
|
.
|
Не, не лучше. Политики иногда будут затыкать. Лучше Loader, а если нужны батики изображения, то формат DefineBits легко изучается.
|
|
|||||
|
Регистрация: May 2011
Сообщений: 2
|
Огромное всем спасибо ребята. Особенно спасибо вам dimarik за библиотеку. Использовал ее и следующий код:
import by.blooddy.crypto.MD5; var byteArray:ByteArray=loader.contentLoaderInfo.bytes; var key:String=MD5.hashBytes(byteArray); Пробовал подгружать одинаковые изображения с разных адресов. Хеш получатся одинаковый - все отлично. Правда если изменить размер, картинки то уже разный. А жаль... |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|