|
автор: bones (23.03.2005 в 22:34) |
|
| Подскажите пожалуйста, есть ли какие-нибудь возможности задать компрессию файла, получаемого при помощи функции imagecreatefromjpeg. В примере указано, что по умолчанию там стоит 50. Для больших картинок это еще туда-сюда, но для маленьких качество становится весьма посредственным. Можно ли явно указывать степень компрессии самому, и если да то как? | |
|
|
|
|
|
|
|
для: bones
(23.03.2005 в 22:34)
| | Степень сжатия нужно определять при сохранений изображений, либо при выводе их в браузер.
int imagejpeg (resource image [, string filename [, int quality]])
|
За это отвечает параметр quality, который определяет качество изображений от 0 до 100%.
http://www.softtime.ru/dic/id_dic=363&id_group=15 | |
|
|
|
|
автор: bones (24.03.2005 в 21:34) |
|
|
для: glsv (Дизайнер)
(23.03.2005 в 23:01)
| | Большое спасибо, я уж боялся, что это никак не меняется :)
Только вот как с этим работать пока не могу понять. У меня есть простенький скрипт, который накладывает большие и малые ватермарки в зависимости от размера картинок, а при отсутствии файла в директории выводит noimg.png. Если можно, поясните на примере, куда нужно вставить эту строку, чтобы файл выводился в браузер с качеством 80.
<?php
//watermark program
//Show that a jpeg image is going to be returned
//echo $QUERY_STRING;
//exit;
header("Content-type: image/jpeg");
//File names
$wmark='watermark.png';
$wmarks='watermark_s.png';
$noimg='noimg.png';
$mimage=$QUERY_STRING;
// mod to display default image instead of 404
if (file_exists($QUERY_STRING)) {
//echo "The file $QUERY_STRING exists";
//Loading
$watermark_img = imagecreatefrompng($wmark);
$watermarks_img = imagecreatefrompng($wmarks);
$wmrk_size = getimagesize($wmark);
$wmrks_size = getimagesize($wmarks);
$main_img = imagecreatefromjpeg($mimage);
//ImageAlphaBlending($main_image, true);
//Merge the 2 buffers
//The figure "300" can be changed to any figure suitable for your situation.
if (ImageSX($main_img) > 299) {
if (ImageSY($main_img) > 424) {
$posx = (ImageSX($main_img) - ImageSX($watermark_img));
$posy = (ImageSY($main_img) - ImageSY($watermark_img));
imagecopy($main_img, $watermark_img, $posx, $posy, 0, 0, $wmrk_size[0], $wmrk_size[1]);
}else{
$posxs = (ImageSX($main_img) - ImageSX($watermarks_img));
$posys = (ImageSY($main_img) - ImageSY($watermarks_img));
imagecopy($main_img, $watermarks_img, $posxs, $posys, 0, 0, $wmrks_size[0], $wmrks_size[1]);
}
}
//Output file to browser
imagejpeg($main_img);
imagedestroy($watermark_img);
imagedestroy($watermarks_img);
imagedestroy($main_img);
} else {
//echo "The file $QUERY_STRING does not exist";
//Loading
$noimg_show = imagecreatefrompng($noimg);
//Output file to browser
imagepng($noimg_show);
imagedestroy($noimg_show);
}
?>
|
| |
|
|
|
|
|
|
|
для: bones
(24.03.2005 в 21:34)
| | Видимо, сюда:
//Output file to browser
imagejpeg($main_img,,80);
imagedestroy($watermark_img);
imagedestroy($watermarks_img);
imagedestroy($main_img
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(24.03.2005 в 23:19)
| | Работает, но только с кавычками
imagejpeg($main_img,'','80');
Как раз то что было нужно, еще раз большое спасибо! :))) | |
|
|
|