Как Сделать Превью на PHP

Тема в разделе "PHP", создана пользователем асс, 20 окт 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221
    Интересукет такое как я сделал на eurosmi.com нужно чтоб картинка показывалась в полный размер при навелении мышки.
    Там сделано на CSS а мне надо на пхп

    Возможно ли сделать это парой строчек кода.
     
  2. olen

    olen Постоялец

    Регистр.:
    30 окт 2007
    Сообщения:
    128
    Симпатии:
    33
    PHP - серверный язык, поэтому подобный эффект на нем сделать не получится.
    Тут надо использовать либо CSS, либо JavaScript.
    Вот пример на JavaScript с использованием популярной библиотеки JQuery:

    http://flora.org.ru/2008/07/15/326/
     
  3. PBT

    PBT Создатель

    Регистр.:
    9 окт 2008
    Сообщения:
    19
    Симпатии:
    7
    для run-time обработки тебе нужен JS, а для обработки с помощью PHP вот тебе класс и юзай его!!!


    PHP:
    class thumbnail 

    var 
    $imgfile

    function  
    thumb($imgfile

    if (!
    file_exists($imgfile)) die ("Cannot read the  file!"); 
    //detect image format 
    //$this->img["format"] =  ereg_replace(".*\.(.*)$","\\1",$imgfile); 
    $hz explode("."$name);  
    $this->img["format"] = $hz[sizeof($hz-1)]; 
    $this->img["format"] =  strtoupper($this->img["format"]); 
    if (
    $this->img["format"]=="JPG" ||  $this->img["format"]=="JPEG"

    //JPEG  
    $this->img["format"]="JPG"
    $this->img["src"] =  ImageCreateFromJPEG($imgfile); 

    elseif (
    $this->img["format"]=="PNG")  

    //PNG 
    $this->img["format"]="PNG"
    $this->img["src"] =  ImageCreateFromPNG($imgfile); 

    elseif (
    $this->img["format"]=="GIF")  

    //GIF 
    $this->img["format"]="GIF"
    $this->img["src"] =  ImageCreateFromGIF($imgfile); 


    else { 
    //DEFAULT 
    echo "Not  Supported File! Thumbnails can only be made from .gif, .jpg and .png images!";  
    exit(); 

    $this->img["lebar"] = imagesx($this->img["src"]);  
    $this->img["tinggi"] = imagesy($this->img["src"]); 
    //default  quality jpeg 
    $this->img["quality"]=100


    function  
    size_auto($size=100

    //size 
    if  ($this->img["lebar"]>=$this->img["tinggi"]) 
    {  
    $this->img["lebar_thumb"]=$size
    $this->img["tinggi_thumb"] =  ($this->img["lebar_thumb"]/$this->img["lebar"])*$this->img["tinggi"];  

    else 

    $this->img["tinggi_thumb"]=$size;  
    $this->img["lebar_thumb"] =  ($this->img["tinggi_thumb"]/$this->img["tinggi"])*$this->img["lebar"];  



    function 
    jpeg_quality($quality=100

    //jpeg quality  
    $this->img["quality"]=$quality




    function  
    show($gd_version

    Header("Content-Type:  image/".$this->img["format"]); 
    if(
    $gd_version==2
    {  
    $this->img["des"] =  imagecreatetruecolor($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);  
    imagecopyresampled ($this->img["des"], $this->img["src"], 0000,  $this->img["lebar_thumb"],$this->img["tinggi_thumb"],  $this->img["lebar"], $this->img["tinggi"]); 

    if(
    $gd_version==1)  

    $this->img["des"] =  imagecreate($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);  
    imagecopyresized ($this->img["des"], $this->img["src"], 0000,  $this->img["lebar_thumb"],$this->img["tinggi_thumb"],  $this->img["lebar"], $this->img["tinggi"]); 

    if  (
    $this->img["format"]=="JPG" || $this->img["format"]=="JPEG"
    {  
    //JPEG 
    imageJPEG($this->img["des"],"",$this->img["quality"]);  

    elseif (
    $this->img["format"]=="PNG"

    //PNG  
    imagePNG($this->img["des"]); 

    elseif  (
    $this->img["format"]=="GIF"

    //GIF  
    imageGIF($this->img["des"]); 



    function  
    save($save="",$gd_version


    if(
    $gd_version==2
    {  
    $this->img["des"] =  imagecreatetruecolor($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);  
    @
    imagecopyresampled ($this->img["des"], $this->img["src"], 0000,  $this->img["lebar_thumb"], $this->img["tinggi_thumb"],  $this->img["lebar"], $this->img["tinggi"]); 

    if(
    $gd_version==1)  

    $this->img["des"] =  imagecreate($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);  
    @
    imagecopyresized ($this->img["des"], $this->img["src"], 0000,  $this->img["lebar_thumb"], $this->img["tinggi_thumb"],  $this->img["lebar"], $this->img["tinggi"]); 

    if  (
    $this->img["format"]=="JPG" || $this->img["format"]=="JPEG"
    {  
    //JPEG 
    imageJPEG($this->img["des"],"$save",$this->img["quality"]);  

    elseif (
    $this->img["format"]=="PNG"

    //PNG  
    imagePNG($this->img["des"],"$save"); 

    elseif  (
    $this->img["format"]=="GIF"

    //GIF  
    imageGIF($this->img["des"],"$save"); 




    function  
    open_save($open$save$size$gd

    $this->thumb($open);  
    $this->size_auto($size); 
    $this->save($save$gd); 


    }  
    Делай превьюшки ))))
    Если надо сохранить копию картинки (уменьшенную, увеличенную), то:
    $thumbnail = new thumbnail;
    $thumbnail->open_save('1.jpg', 'copy.jpgf', $size, 2);
    Где $size = размер полученной картинки.
     
  4. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221
    Именно так и хочу, чтоб одна картинка срасширением JPEG
    могла превращаться в превьюшку. А при наведении мыши увеличивалась до реального размера.
    :)
    Надо сохранить реальный размер картинки и это делается без проблемм.
    Просто хочу сделать возможность увеличения картинки при наведении мышки.
    Ваши примеры сегодня попробую. :ay:
     
  5. indian.rider

    indian.rider Постоялец

    Регистр.:
    20 окт 2008
    Сообщения:
    119
    Симпатии:
    26
    Заняткая штука. Только при наведении курсора мыши картинка дергается. Проблемы с позиционированием. Думаю, это решается проще, если использовать одинаковый размер картинок везде (как маленьких так и больших).
     
  6. gregzem

    gregzem

    Регистр.:
    21 окт 2007
    Сообщения:
    200
    Симпатии:
    63
    Или открывать в слое поверх, которые имеет абсолютное позиционирование.
     
  7. DIAgen

    DIAgen Постоялец

    Регистр.:
    30 окт 2006
    Сообщения:
    134
    Симпатии:
    72
    Посмотри вот этот пример Jcrop может сможешь найти для себя что нибудь.
     
  8. ulianov

    ulianov Писатель

    Регистр.:
    19 окт 2008
    Сообщения:
    3
    Симпатии:
    0
    самое простое решение генерация превью imagepreview , плавное увеличение изображения при клике highslide. Работают в паре хорошо, но не для высоконагруженных сайтов
     
Статус темы:
Закрыта.