Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: imagecreatefromjpeg
 
 автор: bones   (23.03.2005 в 22:34)
 
 

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

   
 
 автор: glsv (Дизайнер)   (23.03.2005 в 23:01)   письмо автору
 
   для: 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$posy00$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$posys00$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);

}
?>

   
 
 автор: glsv (Дизайнер)   (24.03.2005 в 23:19)   письмо автору
 
   для: bones   (24.03.2005 в 21:34)
 

Видимо, сюда:

//Output file to browser 
imagejpeg($main_img,,80); 
imagedestroy($watermark_img); 
imagedestroy($watermarks_img); 
imagedestroy($main_img

   
 
 автор: bones   (25.03.2005 в 22:42)   письмо автору
 
   для: glsv (Дизайнер)   (24.03.2005 в 23:19)
 

Работает, но только с кавычками

imagejpeg($main_img,'','80');

Как раз то что было нужно, еще раз большое спасибо! :)))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования