За последние 24 часа нас посетили 17907 программистов и 1603 робота. Сейчас ищут 1989 программистов ...

изображение

Тема в разделе "Обработка изображений средствами PHP", создана пользователем zhenia3003, 13 авг 2014.

  1. zhenia3003

    zhenia3003 Активный пользователь

    С нами с:
    20 авг 2012
    Сообщения:
    184
    Симпатии:
    3
    Нужно определение картинки по расширению png, gif, bmp, jpg. Делается как то через switch case , не знаю куда подставлять, хелп!
    Код (Text):
    1.  
    2. $size=GetImageSize ($_FILES["zak"]["tmp_name"]);
    3. $src=ImageCreateFromJPEG ($_FILES["zak"]["tmp_name"]);
    4. $iw=$size[0];
    5. $ih=$size[1];
    6. $koe=$iw/450;
    7. $new_h=ceil ($ih/$koe);
    8. $dst=ImageCreateTrueColor (450, $new_h);
    9. ImageCopyResampled ($dst, $src, 0, 0, 0, 0, 450, $new_h, $iw, $ih);
    10. ImageJPEG ($dst, $name_new_file, 450);
    11. imagedestroy($src);
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    0. никогда не пытайся обрабатывать файл непосредственно из $_FILES["xxx"]["tmp_name"], 100% на хостинге это будет ошибка! сначала делай http://ru2.php.net/manual/ru/function.move-uploaded-file
    1. расширение может не соответствовать реальному формату данных
    2. если таки готов рискнуть с форматом, то
    Код (PHP):
    1. //...
    2. $ext = strtolower($ext);
    3. if ($ext == 'jpg') {
    4.   $ext = 'jpeg';
    5. }
    6. $func = 'imagecreatefrom'.$ext;
    7. if (!function_exists($func)) {
    8.   die("Unknown image format {$ext}");
    9. }
    10. $src = $func($filename); 
     
  3. zhenia3003

    zhenia3003 Активный пользователь

    С нами с:
    20 авг 2012
    Сообщения:
    184
    Симпатии:
    3
    Почему при загрузке jpg, gif, png меняются размеры на 10-20 Кб, а при загрузке bmp 3 МБ ??????

    Код (Text):
    1.  
    2. $zak=$_POST['zak'];
    3. $file=$_FILES['zak']['name'];
    4. $size=$_FILES['zak']['size'];
    5. $ext=array('.jpg','.gif','.png','.jpeg','.bmp');
    6. $extension = substr($file,-(strlen($file) - strrpos($file,'.') - 1));
    7. $name_new_file = "base/$cityname/$category/$foldername/img.".$extension;
    8.  
    9.  
    10.  
    11.  
    12.      
    13. if(in_array(strrchr($file,"."),$ext)){
    14. if($size>1024*1024*5){
    15. //превышен максимальный размер файла
    16. }else{
    17.  
    18. if(move_uploaded_file($_FILES["zak"]["tmp_name"], $name_new_file)){
    19.    
    20.    
    21.  if (in_array($extension, $ext)) {
    22. $size=GetImageSize($name_new_file);
    23.  
    24.  
    25. switch ($extension) {
    26.             case '.jpg': $src = @imagecreatefromjpeg($name_new_file); break;
    27.             case '.gif': $src = @imagecreatefromgif($name_new_file); break;
    28.             case '.png': $src = @imagecreatefrompng($name_new_file); break;
    29.             case '.bmp': $src = @imagecreatefromwbmp($name_new_file); break;
    30.         }
    31.  
    32. $iw=$size[0];
    33. $ih=$size[1];
    34. $koe=$iw/450;
    35. $new_h=ceil ($ih/$koe);
    36. $dst=ImageCreateTrueColor (450, $new_h);
    37. ImageCopyResampled ($dst, $src, 0, 0, 0, 0, 450, $new_h, $iw, $ih);
    38.  
    39.  
    40.  
    41.  switch ($extension) {
    42.             case '.jpg': imagejpeg($dst, $name_new_file, 450); // Для JPEG картинок
    43.                          break;
    44.                
    45.             case '.gif': imagegif($dst, $name_new_file, 450); // Для GIF картинки
    46.                          break;
    47.                
    48.             case '.png': imagepng($dst, $name_new_file, 450); // Для PNG картинок
    49.                          break;
    50.                
    51.             case '.bmp': imagewbmp($dst, $name_new_file, 450); // Для BMP картинки
    52.                          break;
    53.             }        
    54.  
    55.  
    56. imagedestroy($src);
    57.  
    58.  }
    59.  
    60.  
    61.  
    62.  
    63.  
    64.  
    65. }else{
    66. }//if upload
    67.  
    68.  
    69. }
    70. }