регулярное выражение для анализа изображения - PullRequest
1 голос
/ 11 февраля 2011

Если у меня есть строка в виде:

данные: изображение / х-значок, base64, iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8 / 9hAAAABmJLR0QAAAAAAAD5Q7t / AAAA2UlEQVQ4y8WSvQvCMBDFX2rFUvuFSAUFBQfBwUXQVfFfFpzdRV2c7O5UKmihX9E6RZo2pXbyTbmX3C + 5uwD / FskG + 76WsvX65n / 3Lm0pdU214HOAbHIWwvzeYPL1p4cT4QCi5DIxEINIdWt + Hs9cXAtg3UOkIJAUpT5ADiho8kbD0NG0LB6Q76xIevwCpW + 0bBvj7Y5wgCpI148RBxTmYo7Z1RGPkSk / kc4jgme0oHoJlmFUOC+ 8lUEMN0ASvyBpGha ++ IXCJrJyKJGhjIalyZVyNqufP9j / 9AH0S0vqrU + YMgAAAABJRU5ErkJggg ==

Какое регулярное выражение я могу использовать для анализа этих элементов в массиве?(так что я могу написать правильное изображение)

обновление: я понимаю кодировку base64, но вопрос на самом деле в том, как анализировать подобные встроенные значки на веб-страницах.так как я не знаю, используют ли люди, например, base62 ... или другие строки изображений или даже другие форматы для встраивания изображений.и т. д. Я также вижу примеры на страницах, где идентификатором является image / x-icon, но строка на самом деле содержит png.

UPDATE просто некоторая отдача, чтобы поделиться кодом, в котором я использовалэто: http://plugins.svn.wordpress.org/wp-favicons/trunk/filters/search/filter_extract_from_page.php

Хотя у меня все еще есть некоторые вопросы, например, если используется только base64 и т. д. ... но время покажет на практике.

1 Ответ

8 голосов
/ 11 февраля 2011

Можете ли вы увидеть base64 в начале?Вам не нужно регулярное выражение.Вам нужно декодировать эту строку base64 в поток байтов, а затем сохранить ее как изображение.

Теперь я сохранил следующий текст в файл icon.txt:

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAAAAAAAD5Q7t
/AAAA2UlEQVQ4y8WSvQvCMBDFX2rFUvuFSAUFBQfBwUXQVfFfFpzdRV2c7O5UKmihX9E6RZo2pXbyTbmX3C+5uwD
/FskG+76WsvX65n
/3Lm0pdU214HOAbHIWwvzeYPL1p4cT4QCi5DIxEINIdWt+Hs9cXAtg3UOkIJAUpT5ADiho8kbD0NG0LB6Q76xIevwCpW+0bBvj7Y5wgCpI148RBxTmYo7Z1RGPkSk
/kc4jgme0oHoJlmFUOC+8lUEMN0ASvyBpGha++IXCJrJyKJGhjIalyZVyNqufP9j
/9AH0S0vqrU+YMgAAAABJRU5ErkJggg==

И обработал:

base64 -d icon.txt > icon.png

и отображает значок красного сердца, 16x16 пикселей.

Это способ, которым вы можете декодировать его в командной строке.Большинство языков программирования предлагают хорошие библиотеки для декодирования непосредственно в вашей программе.

РЕДАКТИРОВАНИЕ: Если вы используете PHP, взгляните на base64_decode () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...