Как перерисовывать пиксельные пиксели в PHP?

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

php,image-processing,

-1

Ответов: 1


0 принят

Один из способов удалить все изображения EXIF, GPS, IPTC, автора, авторских прав и цветов из образа - использовать ImageMagick, который доступен на всех дистрибутивах Linux и MacOS и Windows.

В командной строке вы должны:

convert input.jpg -strip output.jpg

Если вы хотите сделать это с помощью PHP, вы можете использовать эквивалент Imagick :

bool Imagick::stripImage ( void )

который описан здесь . Итак, это будет выглядеть так:

// Load input image and strip everything
$image = new Imagick('start.jpg');
$image->stripImage();

// Output result
$image->writeImage('result.jpg');

Другой, возможно, более простой и легкий способ - это exiftool( «простой» сценарий Perl , а не массивный пакет, такой как ImageMagick ) следующим образом:

exiftool -all= YourImage.jpg

Вы также можете «выложить» из PHP, используя system()для запуска этих команд, если найдете это проще.


Если вы абсолютно параноики по этому поводу, вы можете преобразовать в промежуточный формат, который вообще не поддерживает метаданные, такие как NetPBMформат ( ссылка Википедии), а затем обратно в JPEG, например:

convert YourImage.jpg -strip pam:- | convert pam:- result.jpg

Если вам интересно, почему я все еще использовал -stripвыше, это потому, что NetPBM поддерживает комментарии, поэтому я хотел избавиться от них. Если вам интересно, почему я выбрал формат PAM вместо PPM, он работает с PNG-файлами, которые могут иметь 4 канала (т. Е. RGB и прозрачность).


Вы можете проверить, какая информация все еще содержится в изображении, используя:

jhead -v YourImage.jpg

Или:

exiftool YourImage.jpg

Или вы можете найти все текстовые строки в своем изображении и использовать их grepдля просмотра и посмотреть, не проскользнуло ли что-то, что вы конкретно не хотите:

strings YourImage.jpg | grep -Ei "copyright|latitude|longitude|author"
PHP, обработки изображений,
Похожие вопросы
Яндекс.Метрика