Image resize, thumbnail

Тема в разделе "PHP", создана пользователем rewiaca, 30 май 2009.

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

    rewiaca

    Регистр.:
    29 апр 2009
    Сообщения:
    192
    Симпатии:
    30
    Делаю небольшую админку, а вот как заливать изображения, так и не знаю как реализовать.. Хотелось чтобы оно делало тумбы, миниатирные эскизы да и ограничения на вес и размер загружаемых файлов, чтобы менеджер был удобный, как на ДЛЕ - можно просматривать уже имеющиеся изобрание, которые были загружены ранее.
    ДУмал сделать както с галлереей - т.е. сначала на галлерею, а там как раз и тумба есть, и прросто линки повставлять, но это не очень подходит.
    Может существует такой модул обработки изображений уже готовый?
    Помогите ребята!
     
  2. TrojaNFlash

    TrojaNFlash Прохожие

  3. mcslayer

    mcslayer Создатель

    Регистр.:
    25 май 2008
    Сообщения:
    24
    Симпатии:
    1
    PHP:
    <?php
    define 
    ("MAX_SIZE","1024"); 
    define ("WIDTH","150"); 
    define ("HEIGHT","100"); 
    function 
    make_thumb($img_name,$filename,$new_w,$new_h)
    {
    $ext=getExtension($img_name);
    if(!
    strcmp("jpg",$ext) || !strcmp("jpeg",$ext))
    $src_img=imagecreatefromjpeg($img_name);
    if(!
    strcmp("png",$ext))
    $src_img=imagecreatefrompng($img_name);
    $old_x=imageSX($src_img);
    $old_y=imageSY($src_img);
    $ratio1=$old_x/$new_w;
    $ratio2=$old_y/$new_h;
    if(
    $ratio1>$ratio2)    {
    $thumb_w=$new_w;
    $thumb_h=$old_y/$ratio1;
    }
    else    {
    $thumb_h=$new_h;
    $thumb_w=$old_x/$ratio2;
    }
    $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
    imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); 
    if(!
    strcmp("png",$ext))
    imagepng($dst_img,$filename); 
    else
    imagejpeg($dst_img,$filename); 
    imagedestroy($dst_img); 
    imagedestroy($src_img); 
    }
    function 
    getExtension($str) {
    $i strrpos($str,".");
    if (!
    $i) { return ""; }
    $l strlen($str) - $i;
    $ext substr($str,$i+1,$l);
    return 
    $ext;
    }
    $errors=0;
    if(isset(
    $_POST['Submit']))
    {
    $image=$_FILES['image']['name'];
    if (
    $image
    {
    $filename stripslashes($_FILES['image']['name']);
    $extension getExtension($filename);
    $extension strtolower($extension);
    if ((
    $extension != "jpg") && ($extension != "jpeg") && ($extension != "png"))    
    {
    echo 
    '<h1>Unknown extension!</h1>';
    $errors=1;
    }
    else
    {
    $size=getimagesize($_FILES['image']['tmp_name']);
    $sizekb=filesize($_FILES['image']['tmp_name']);
    if (
    $sizekb MAX_SIZE*1024)
    {
    echo 
    '<h1>You have exceeded the size limit!</h1>';
    $errors=1;
    }
    $image_name=time().'.'.$extension;
    $newname="images/full/".$image_name;
    $copied copy($_FILES['image']['tmp_name'], $newname);
    if (!
    $copied
    {
    echo 
    '<h1>Copy unsuccessfull!</h1>';
    $errors=1;
    }
    else
    {
    $thumb_name='images/thumbs/thumb_'.$image_name;
    $thumb=make_thumb($newname,$thumb_name,WIDTH,HEIGHT);
    }}    }}
    ?>
     
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Код настолько офигенный что его надо прятать в хайд и делать большую тряпку вместо тэга PHP?
     
Статус темы:
Закрыта.