|
|
|
| хотелось бы очищать загружаемые изображения от лишних данных.
чтобы например мне не загрузили картинку 1x1 пиксель с приклеенным к ней в конец rar-архивом в несколько мегабайт.
да и вообще какие-нибудь там мета-данные фотоаппарата выкинуть заодно.
какой лучше функцией это сделать?
планирую использовать расширение GD. | |
|
|
|
|
|
|
|
для: irr
(29.09.2010 в 10:49)
| |
$f = getimagesize('img.png');
print_r($f);
|
| |
|
|
|
|
|
|
|
для: deimand
(29.09.2010 в 11:07)
| | ну и как это относится к моему вопросу? | |
|
|
|
|
|
|
|
для: irr
(29.09.2010 в 10:49)
| | [удалено] | |
|
|
|
|
|
|
|
для: irr
(29.09.2010 в 10:49)
| | нужно что-то типа:
<?php
$im=imagecreatefromjpeg('input.jpg');
imagejpeg($im,'output.jpg');
?>
|
но тут тоже проблема - в imagejpeg нужно качество указать. по умолчанию 75.
а хотелось бы это дело вообще не трогать. | |
|
|
|
|
|
|
|
для: irr
(29.09.2010 в 11:51)
| | Изменяйте размер изображения, и проверяйте результат. Ну а качество у jpeg понятие относительное - при каждом сохранении изображения вновь происходит сжатие, уже сжатого, так что терять будете в любом случае. | |
|
|
|
|
|
|
|
для: sim5
(29.09.2010 в 12:37)
| | вроде бы приведенный выше код делает достаточно. изменять размер уже лишнее действие.
а полностью сохранить качество можно как-то? пусть не через GD. | |
|
|
|
|
|
|
|
для: irr
(29.09.2010 в 18:15)
| | Не будет уже прежнего качества в любом случае - с каждой записью файла jpeg просходит его сжатие, и это уже потери. Укажите процент сжатия 80, 90, 100, в общем как вам нравится. Но стоит ли заморачиваться по этому поводу, чай у вас изображения не размазанные донельзя, что это так критично?
Минуя GD, это записать строку исходных данных (тело картинки) в файл, или тоже самое (по идее) - перемещение из временной папки закачанного файла. | |
|
|
|
|
|
|
|
для: sim5
(29.09.2010 в 18:19)
| | е-еее, я нашел! :)
exec("jpegtran -copy none input.jpg > output.jpg");
|
то что надо! удаляет метаданные и мусор в конце без потери качества.
но это внешняя утилита. | |
|
|
|
|
|
|
|
для: irr
(29.09.2010 в 18:31)
| | Ну если у вас разрешены exec(), если у вас есть эта утилита, делайте так. Копирование, это не сохранение открытого файла, это надеюсь вы понимаете? Потому и не будет потери никакой, но выше то вы имели ввиду другое, сохранение, следовательно.... | |
|
|
|
|
|
|
|
для: sim5
(29.09.2010 в 18:35)
| | может я не очень понятно объяснил, но jpegtran то что надо
http://linux.die.net/man/1/jpegtran
jpegtran - lossless transformation of JPEG files
утилита входит в стандартный пакет jpeg для unix.
а вот и опция которую я искал:
-copy none
Copy no extra markers from source file. This setting suppresses all comments and other excess bag-
gage present in the source file.
|
кстати много других полезностей есть. например -optimize | |
|
|
|
|
|
|
|
для: irr
(29.09.2010 в 18:42)
| | Да нет, почему же, все понятно. Пользуйтесь, но проверяйте is_uploaded_file загрузку тогда перед копированием. | |
|
|
|