Создание превьюшек

Discussion in 'PHP' started by sharoff, 6 Feb 2009.

  1. sharoff

    sharoff Member

    Joined:
    5 Aug 2007
    Messages:
    25
    Likes Received:
    6
    Reputations:
    0
    Ребят, доброе время суток.
    Если что - не ругайтесь, нет особо много времени пользоваться поиском.
    Нужен простенький скрипт загрузки картинок на сервер (желательно и с ПК и с URL), которые имеют рандомное название, с созданием превьюшек, которые масштабируются пропорционально по ширине (всмысле задается только ширина, высоту он сам подгоняет).

    Если кто может - выдерните из ДЛЕ, может кто-то для себя писал, скиньте пожалуйста.

    Заранее огромное спасибо!
     
  2. Zitt

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    4images
     
  3. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Вот старая функция пропорционального ресайза, когда-то давно писал.

    PHP:
    function resize($image$type$width=500$height=400){
            
            if(
    $type == 'gif'$srcImage ImageCreateFromGif($image);
            elseif(
    $type == 'jpeg'$srcImage ImageCreateFromJpeg($image);
            elseif(
    $type == 'png'$srcImage ImageCreateFromPng($image);
            elseif(
    $type == 'bmp'$srcImage ImageCreateFromwBmp($image);
            else 
    $srcImage false;        

            if(
    $srcImage){   
            
                
    $srcWidth  ImageSX($srcImage);
                
    $srcHeight ImageSY($srcImage);
                
                if((
    $width $srcWidth) || ($height $srcHeight)){
                    
    $ratioWidth  $srcWidth/$width;
                    
    $ratioHeight $srcHeight/$height;

                    if(
    $ratioWidth $ratioHeight){
                        
    $destWidth  $srcWidth/$ratioHeight;
                        
    $destHeight $height;
                    }else{
                        
    $destWidth  $width;
                        
    $destHeight $srcHeight/$ratioWidth;
                    }     
                    
                    
    $resImage ImageCreateTrueColor($destWidth$destHeight);
                    
    ImageCopyResampled($resImage$srcImage0000$destWidth$destHeight$srcWidth$srcHeight);
                    
                    if(
    $type == 'gif') return ImageGif($resImage$image);
                    elseif(
    $type == 'jpeg') return ImageJpeg($resImage$image);
                    elseif(
    $type == 'png') return ImagePng($resImage$image);
                    elseif(
    $type == 'bmp') return ImagewBmp($resImage$image);
                    else return 
    false;
                    
                    
    ImageDestroy($srcImage);
                    
    ImageDestroy($resImage);
                }
            }
        }

    Ну а с загрузкой всё просто.
    Локально: cм. функции move_uploaded_file() или copy()
    А удалённо: file_get_contents() и сохраняешь через fopen() и fputs()