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

Форум PHP

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

 

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

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

тема: Как из рисунка извлечь Thumbnails и отобразить его в бразуере?
 
 автор: jeans1986   (02.06.2007 в 18:52)   письмо автору
 
 

Как из рисунка извлечь Thumbnails и отобразить его в бразуере? Т.е если есть изображение на сервере прочитать файл и вывести изображение в браузер или сохранить в другой файл. Как мне это сделать или возможно такое? Заранее Благодарю.

   
 
 автор: Киналь   (02.06.2007 в 19:17)   письмо автору
 
   для: jeans1986   (02.06.2007 в 18:52)
 

Именно thumbnail, эскиз, можно извлечь только из JPEG, да и то не из всякого. А вот показать уменьшенную копию можно практически всегда; это называется превью (превьюшка, preview, уменьшеная копия) и есть в любой галерее. Отдельной функции для этого нет, но есть много готовых и "вылизанных" решений. Они в поиске=)

   
 
 автор: sms-send   (02.06.2007 в 19:23)   письмо автору
 
   для: jeans1986   (02.06.2007 в 18:52)
 

<?php
$filename
='test.jpg';
$width=200;
$height=200;
list(
$width_orig,$height_orig)=getimagesize($filename);
$ratio_orig=$width_orig/$height_orig;
if(
$width/$height>$ratio_orig)$width=$height*$ratio_orig;else $height=$width/$ratio_orig;
$image_p=imagecreatetruecolor($width,$height);
$image=imagecreatefromstring(file_get_contents($filename));
imagecopyresampled($image_p,$image,0,0,0,0,$width,$height,$width_orig,$height_orig);
imagejpeg($image_p,'thumb_'.$filename,100);
?>

   
 
 автор: Киналь   (02.06.2007 в 19:25)   письмо автору
 
   для: sms-send   (02.06.2007 в 19:23)
 

Это только для jpg) Остальные типы надо хотя бы отсечь.

   
 
 автор: Job   (02.06.2007 в 19:39)   письмо автору
 
   для: sms-send   (02.06.2007 в 19:23)
 


<?php
  
function resizeimg($filename$smallimage$w$h
  { 
    
// определим коэффициент сжатия изображения, которое будем генерить 
    
$ratio $w/$h
    
// получим размеры исходного изображения 
    
$size_img getimagesize($filename); 
    
// получим коэффициент сжатия исходного изображения 
    
$src_ratio=$size_img[0]/$size_img[1]; 

    
// Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились  
    // пропорции исходного изображения 
    
if ($ratio<$src_ratio
    { 
      
$h $w/$src_ratio
    } 
    else 
    { 
      
$w $h*$src_ratio
    } 
    
// создадим пустое изображение по заданным размерам  
    
$dest_img imagecreatetruecolor($w$h);   
    
$white imagecolorallocate($dest_img255255255);        
    if (
$size_img[2]==2)  $src_img imagecreatefromjpeg($filename);                       
    else if (
$size_img[2]==1$src_img imagecreatefromgif($filename);                       
    else if (
$size_img[2]==3$src_img imagecreatefrompng($filename);  

    
// масштабируем изображение     функцией imagecopyresampled() 
    // $dest_img - уменьшенная копия 
    // $src_img - исходной изображение 
    // $w - ширина уменьшенной копии 
    // $h - высота уменьшенной копии         
    // $size_img[0] - ширина исходного изображения 
    // $size_img[1] - высота исходного изображения 
    
imagecopyresampled($dest_img$src_img0000$w$h$size_img[0], $size_img[1]);                 
    
// сохраняем уменьшенную копию в файл  
    
if ($size_img[2]==2)  imagejpeg($dest_img$smallimage);                       
    else if (
$size_img[2]==1imagegif($dest_img$smallimage);                       
    else if (
$size_img[2]==3imagepng($dest_img$smallimage);  
    
// чистим память от созданных изображений 
    
imagedestroy($dest_img); 
    
imagedestroy($src_img); 
    return 
true;          
  }             
  
  
//Запуск функции
$bigimage "big.jpg"//Большое изображение
$smallimage "mini.jpg"//Куда сохранить маленькое 
resizeimg($bigimage$smallimage100100);  //размеры 100x100px
?>


Это не моё :) Мне тоже когда то давали... :)

   
Rambler's Top100
вверх

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