Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Изменение размеров изображения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
nichtraucher
Отправлено: 21 Декабря, 2010 - 18:55:25
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Кто может обьяснить или подскажет где можно почитать более детально об этой функии?

<?
function imageresize($outfile,$infile,$neww,$newh,$quality) {
$im=imagecreatefromjpeg($infile);
$k1=$neww/imagesx($im);
$k2=$newh/imagesy($im);
$k=$k1>$k2?$k2:$k1;

$w=intval(imagesx($im)*$k);
$h=intval(imagesy($im)*$k);

$im1=imagecreatetruecolor($w,$h);
imagecopyresampled($im1,$im,0,0,0,0,$w,$h,imagesx($im),imagesy($im));

imagejpeg($im1,$outfile,$quality);
imagedestroy($im);
imagedestroy($im1);
}

imageresize("","webcam.jpg",640,240,75);

?>
 
 Top
manitor
Отправлено: 25 Декабря, 2010 - 17:56:49
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




Скачай бесплатно Изменение размера картинки, я часто пользуюсь этим софтом.
 
 Top
grefon
Отправлено: 26 Декабря, 2010 - 01:45:23
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




PHP:
скопировать код в буфер обмена
  1. // Создаем саму функцию:
  2.  
  3. // $infile - входящий графический файл
  4. // $outfile - измененый файл
  5. // $neww - новая ширина
  6. // $newh - новая высота
  7. // $quality - качество измененного рисунка
  8. function imageresize($outfile,$infile,$neww,$newh,$quality) {
  9. $im=imagecreatefromjpeg($infile); // Создаем графический объект из входящего файла
  10.  
  11. // Далее вычесляем ширину и высоту входящего файла и создаваемого фала:
  12. $k1=$neww/imagesx($im);
  13. $k2=$newh/imagesy($im);
  14. $k=$k1>$k2?$k2:$k1;
  15.  
  16. $w=intval(imagesx($im)*$k);
  17. $h=intval(imagesy($im)*$k);
  18.  
  19. $im1=imagecreatetruecolor($w,$h); // Создаем новый графический объект в который запишем измененный рисунок; $w,$h - ширина и высота
  20. imagecopyresampled($im1,$im,0,0,0,0,$w,$h,imagesx($im),imagesy($im)); // Копируем входящий рисунок в исходящий в начало координат.
  21.  
  22. imagejpeg($im1,$outfile,$quality); // сохраняем файл в jpg формате с заданным качеством
  23. imagedestroy($im); // разрушаем входящий файл
  24. imagedestroy($im1); // разрушаем исходящий файл
  25. }
  26.  
  27. // Запускаем функцию
  28. imageresize("","webcam.jpg",640,240,75);
  29.  


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
lelectrohardl
Отправлено: 25 Января, 2011 - 20:02:25
Post Id



Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




grefon пишет:
PHP:
скопировать код в буфер обмена
  1. // Создаем саму функцию:
  2.  
  3. // $infile - входящий графический файл
  4. // $outfile - измененый файл
  5. // $neww - новая ширина
  6. // $newh - новая высота
  7. // $quality - качество измененного рисунка
  8. function imageresize($outfile,$infile,$neww,$newh,$quality) {
  9. $im=imagecreatefromjpeg($infile); // Создаем графический объект из входящего файла
  10.  
  11. // Далее вычесляем ширину и высоту входящего файла и создаваемого фала:
  12. $k1=$neww/imagesx($im);
  13. $k2=$newh/imagesy($im);
  14. $k=$k1>$k2?$k2:$k1;
  15.  
  16. $w=intval(imagesx($im)*$k);
  17. $h=intval(imagesy($im)*$k);
  18.  
  19. $im1=imagecreatetruecolor($w,$h); // Создаем новый графический объект в который запишем измененный рисунок; $w,$h - ширина и высота
  20. imagecopyresampled($im1,$im,0,0,0,0,$w,$h,imagesx($im),imagesy($im)); // Копируем входящий рисунок в исходящий в начало координат.
  21.  
  22. imagejpeg($im1,$outfile,$quality); // сохраняем файл в jpg формате с заданным качеством
  23. imagedestroy($im); // разрушаем входящий файл
  24. imagedestroy($im1); // разрушаем исходящий файл
  25. }
  26.  
  27. // Запускаем функцию
  28. imageresize("","webcam.jpg",640,240,75);
  29.  

Только хотел выложить этот исходник...
Сам им пользуюсь.
 
 Top
Морозов Семен
Отправлено: 03 Мая, 2013 - 19:02:18
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2012  


Помог: 0 раз(а)




Здравствуйте, а как с помощью этой функции изменить изображение, не нарушая пропорции?
 
 Top
AirDArk
Отправлено: 10 Мая, 2013 - 21:23:11
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <form name="upload" action="index.php" enctype="multipart/form-data" method="post">
  3.             <label>Выберите картинку</label>
  4.             <input type="hidden" name="MAX_FILE_SIZE" value="102400" />
  5.             <input type="file" name="uploadimg" class="input_file" />
  6.      
  7.             <label>Введите Имя Картинки</label>
  8.             <input type="text" name="name"/>
  9.  
  10.             <input type="submit" name="Submit" value="Добавить картинку" class="submit">
  11. </form>
  12.  
  13. <?php
  14.  
  15.                                 //удаляем пробелы из введенного имени
  16.                         while(strpos($name," ")!==false)
  17.                         {
  18.                                 $name=str_replace(" ","",$name);
  19.                                
  20.                         }
  21.  
  22.                   // меняем англ буквы на Русские
  23.                
  24.                   $name=strtr($name,"абвгдеёзийклмнопрстуфхъыэ_","abvgdeeziyklmnoprstufh'iei");  // <-----  строчные
  25.                
  26.                   $name=strtr($name,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_","ABVGDEEZIYKLMNOPRSTUFH'IEI");  // <-----  ПРОПИСНЫЕ
  27.                
  28.                         $name=strtr($name, array(
  29.                        
  30.                         "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
  31.                         "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
  32.                         "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
  33.                         "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
  34.                         "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
  35.                                 )
  36.                           );
  37. //Проверка, действительно ли загруженный файл является изображением
  38. $imageinfo = getimagesize($_FILES['uploadimg']['tmp_name']);
  39. if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] !='image/png')
  40. {
  41.         print '<div class="msg">Загруженный файл не является изображением, mime = ' . $imageinfo['mime'] . '</div>';
  42.         die;
  43. }
  44. //Сохранение загруженного изображения с расширением, которое возвращает функция getimagesize()
  45. //Расширение изображения
  46. $mime=explode("/",$imageinfo["mime"]);
  47.  
  48. //Задаем имя картинки
  49. //$namefile=explode(".",$_FILES["uploadimg"]["name"]); - исходное имя файла
  50.         //Задаем путь к директории
  51.                 $uploaddir = "W:/home/site.ru/www/img/"; //Полный путь
  52.                 $relativedir = "../img/"; //Относительный путь
  53.  
  54. //Функция, перемещает файл из временной, в указанную вами папку
  55. if (move_uploaded_file($_FILES["uploadimg"]["tmp_name"], $uploaddir.$namefile.".".$mime[1]))
  56. {
  57.                         $namefileBig=($namefile.".".$mime[1]);
  58.                         print "Изображение успешно загружено. Его имя - " . $namefileBig;
  59.                         //подключение функции уменьшения размеров
  60.                         $src_name = ($uploaddir.$namefileBig);
  61.                         $dst_name = ($uploaddir.$namefile."_small.".$mime[1]);
  62.                         $dst_name2 = ($uploaddir.$namefile."_mid.".$mime[1]);
  63.  
  64.                
  65.                         $size = 137; //размер маленькой картинки - ширина
  66.                         $size2 = 210; //размер средней картинки - ширина
  67.                                            //Большая картинка остается с исходника
  68.                        
  69.                         $small_pic = ($relativedir.$namefile."_small.".$mime[1]); //формируем относительный путь маленькой картинки, добавляя в имя на конец _small
  70.                         $mid_pic = ($relativedir.$namefile."_mid.".$mime[1]); //формируем относительный путь средней картинки добавляя в имя на конец _mid
  71.                         $big_pic = ($relativedir.$namefileBig); //формируем относительный путь большой картинки - имя остается не изменным
  72.                
  73.                 list($src_w, $src_h) = getimagesize($src_name);
  74.                                
  75.                                 if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] !='image/png')
  76.                         {
  77.                                 print "Загруженный файл не является изображением";
  78.                                 die;
  79.                         }
  80.                                 else {echo '<p>file - ' . $imageinfo['mime'] .'</p>';}
  81.                        
  82.                                 if ( $src_h > $src_w )
  83.                                 {
  84.                                 $dst_h = $size;
  85.                                 $dst_w = ceil(($dst_h / $src_h) * $src_w);
  86.                                
  87.                                 $dst_h2 = $size2;
  88.                                 $dst_w2 = ceil(($dst_h2 / $src_h) * $src_w);
  89.                                 }
  90.                                 else
  91.                                 {
  92.                                 $dst_w = $size;
  93.                                 $dst_h = ceil(($dst_w / $src_w) * $src_h);
  94.                                
  95.                                 $dst_w2 = $size2;
  96.                                 $dst_h2 = ceil(($dst_w2 / $src_w) * $src_h);
  97.                                 }
  98.                                
  99.                                 if ($imageinfo['mime'] == 'image/jpeg' or $imageinfo['mime'] == 'image/jpg')
  100.                                         {
  101.                                         $dst_im = imagecreatetruecolor($dst_w, $dst_h);
  102.                                         $dst_im2 = imagecreatetruecolor($dst_w2, $dst_h2);
  103.                                         $src_im = imagecreatefromjpeg($src_name);
  104.                                        
  105.                                         imagecopyresampled($dst_im, $src_im, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
  106.                                         imagecopyresampled($dst_im2, $src_im, 0, 0, 0, 0, $dst_w2, $dst_h2, $src_w, $src_h);
  107.                                        
  108.                                         imagejpeg($dst_im, $dst_name, 100);
  109.                                         imagejpeg($dst_im2, $dst_name2, 100);
  110.                                        
  111.                                         imagedestroy($dst_im);
  112.                                         imagedestroy($dst_im2);
  113.                                         imagedestroy($src_im);
  114.                                         }
  115.                                 else
  116.                                 {
  117.                                                 if ($imageinfo['mime'] = 'image/png')
  118.                                                 {
  119.                                                 echo '<p>Type - PNG</p>';
  120.                                                 $src_im = imagecreatefrompng($src_name); //создаем ресурс из исходного изображения - в формате пнг
  121.                                                 $dst_im = imagecreatetruecolor($dst_w, $dst_h); //создаем новый ресурс с нужной шириной и высотой (полноцветное)
  122.                                                
  123.                                                 imageAlphaBlending($dst_im, false); //режим смешивания для пнг типа
  124.                                                 imageSaveAlpha($dst_im, true);  //сохраняем прозрачность
  125.                                                 imagecopyresampled($dst_im, $src_im, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
  126.                                                
  127.                                                 imagepng($dst_im, $dst_name, 100);
  128.                                                
  129.                                                 imagedestroy($dst_im);
  130.                                                 imagedestroy($src_im);
  131.                                                 }
  132.                                                
  133.                                                 else {echo 'Произошла ошибка при уменьшении';}
  134.                                 }
  135.         }
  136.  
  137.         else{
  138.                 echo 'Произошла ошибка';
  139.         }
  140. ?>
  141.  
  142.  


Этот скрипт пропорционально уменьшает. Может кому пригодится...

(Отредактировано автором: 10 Мая, 2013 - 21:24:55)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Обсуждение статей »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB