PHP.SU

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

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

> Найдено сообщений: 22
kat69 Отправлено: 30 Мая, 2012 - 16:41:57 • Тема: Уменьшенная копия загружаемого изображения • Форум: Вопросы новичков

Ответов: 17
Просмотров: 727
Если ширина картинки меньше ширины превью, сохранена будет картика в исходном размере.
PHP:
скопировать код в буфер обмена
  1. $uploaddir = 'Z:/home/test1.ru/www/upload/fotos/';
  2. $widthThumb = 200; // Ширина превью
  3.  
  4. preg_match('/(.+)?\.(.+)?$/', $_FILES['upload_foto']['name'], $output);
  5. $file = $output[1];
  6. $mime = $output[2];
  7. $new_filename = time() . $file . "." . $mime;
  8.  
  9. $destination = $uploaddir . $new_filename;
  10. print_r($_FILES);
  11.  
  12. if (move_uploaded_file($_FILES['upload_foto']['tmp_name'], $destination)) {
  13.     $filename = $uploaddir . $new_filename;
  14.     $filetype = $_FILES['upload_foto']['type'];
  15.     $error = $_FILES['upload_foto']['error'];
  16.     $dir = 'Z:/home/test1.ru/www/upload/fotos/thumbs/'; //папка, куда грузится файл
  17.     $finalname = time() . $file . "small_." . "jpg"; //имя файла
  18.  
  19.     switch ($filetype) {
  20.         case "image/gif":
  21.             $im = imagecreatefromgif($filename);
  22.             break;
  23.         case "image/jpeg":
  24.             $im = imagecreatefromjpeg($filename);
  25.             break;
  26.         case "image/png":
  27.             $im = imagecreatefrompng($filename);
  28.             break;
  29.         case "image/pjpeg":
  30.             $im = imagecreatefromjpeg($filename);
  31.             break;
  32.     }
  33.  
  34.     list($w, $h) = getimagesize($filename);
  35.  
  36.     if ($filetype == "image/gif" || $filetype == "image/jpeg" || $filetype == "image/pjpeg" || $filetype == "image/png") {
  37.         if ($w <= $widthThumb) {
  38.             $widthThumb=$w;
  39.             $heightThumb=$h;
  40.         } else {
  41.             $ratio = $widthThumb / $w;
  42.             $heightThumb = $h * $ratio;
  43.         }
  44.         $im1 = imagecreatetruecolor($widthThumb, $heightThumb);
  45.         imagecopyresampled($im1, $im, 0, 0, 0, 0, $widthThumb, $heightThumb, imagesx($im), imagesy($im));
  46.  
  47.         imageconvolution($im1, array(array(-1, -1, -1), array(-1, 16, -1), array(-1, -1, -1)), 8, 0);
  48.         imagejpeg($im1, $dir . $finalname, 100);
  49.         imagedestroy($im);
  50.         imagedestroy($im1);
  51.     }
  52. }


Но если вы хотите все же уменьшать, то нужно знать, насколько меньше картинка должна быть.
kat69 Отправлено: 30 Мая, 2012 - 15:24:19 • Тема: фото в бд • Форум: Графика в PHP

Ответов: 40
Просмотров: 11652
если база MySQL, то есть несколько вариантов:
TINYBLOB - может хранить до 255 байт
BLOB - может хранить до 64 килобайт информации
MEDIUMBLOB - до 16 мегабайт
LONGBLOB - до 4 гигабайт

Поле для загрузки файла
CODE (html):
скопировать код в буфер обмена
  1.        <p>Фото</p>
  2.        <p><input id='foto' name='foto' type='file' size='30'  /></p>
kat69 Отправлено: 30 Мая, 2012 - 15:12:23 • Тема: Уменьшенная копия загружаемого изображения • Форум: Вопросы новичков

Ответов: 17
Просмотров: 727
Попробуйте этот код
PHP:
скопировать код в буфер обмена
  1.     $uploaddir = 'Z:/home/test1.ru/www/upload/fotos/';
  2.     $widthThumb = 200; // Ширина превью
  3.  
  4.     preg_match('/(.+)?\.(.+)?$/', $_FILES['upload_foto']['name'], $output);
  5.     $file = $output[1];
  6.     $mime = $output[2];
  7.     $new_filename = time() . $file . "." . $mime;
  8.  
  9.     $destination = $uploaddir . $new_filename;
  10.     print_r($_FILES);
  11.      
  12.     if (move_uploaded_file($_FILES['upload_foto']['tmp_name'], $destination))
  13.      {
  14.          $filename = $uploaddir . $new_filename;
  15.          $filetype = $_FILES['upload_foto']['type'];
  16.          $error = $_FILES['upload_foto']['error'];
  17.          $dir = 'Z:/home/test1.ru/www/upload/fotos/thumbs/'; //папка, куда грузится файл
  18.          $finalname = time() . $file . "small_." . "jpg"; //имя файла
  19.  
  20.          switch ($filetype) {
  21.              case "image/gif":
  22.                  $im = imagecreatefromgif($filename);
  23.                  break;
  24.              case "image/jpeg":
  25.                  $im = imagecreatefromjpeg($filename);
  26.                  break;
  27.              case "image/png":
  28.                  $im = imagecreatefrompng($filename);
  29.                  break;
  30.              case "image/pjpeg":
  31.                  $im = imagecreatefromjpeg($filename);
  32.                  break;
  33.          }
  34.  
  35.          list($w, $h) = getimagesize($filename);
  36.  
  37.          if ($filetype == "image/gif" || $filetype == "image/jpeg" || $filetype == "image/pjpeg" || $filetype == "image/png") {
  38.              $ratio = $widthThumb / $w;
  39.              $heightThumb = $h * $ratio;
  40.              $im1 = imagecreatetruecolor($widthThumb, $heightThumb);
  41.              imagecopyresampled($im1, $im, 0, 0, 0, 0, $widthThumb, $heightThumb, imagesx($im), imagesy($im));
  42.  
  43.              imageconvolution($im1, array(array(-1, -1, -1), array(-1, 16, -1), array(-1, -1, -1)), 8, 0);
  44.              imagejpeg($im1, $dir . $finalname, 100);
  45.              imagedestroy($im);
  46.              imagedestroy($im1);
  47.          }  
  48.      }
kat69 Отправлено: 30 Мая, 2012 - 14:52:05 • Тема: фото в бд • Форум: Графика в PHP

Ответов: 40
Просмотров: 11652
Если я правильно понял вопрос, то так
CODE (html):
скопировать код в буфер обмена
  1. <input id='foto' name='foto' type='file' size='30'  />
kat69 Отправлено: 30 Мая, 2012 - 14:43:04 • Тема: динамическое формирование изображения • Форум: Графика в PHP

Ответов: 6
Просмотров: 4378
Если нет возможности увеличить мощность сервера, смотрите в сторону AJAX и динамически подгружайте картинки.
kat69 Отправлено: 29 Мая, 2012 - 11:55:35 • Тема: Вопрос по работе с генерированными в PHP изображениями. • Форум: Графика в PHP

Ответов: 8
Просмотров: 3313
Попробуйте так, у меня все отработало
при условии, что есть два png файла
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if(!$_GET['parametr']){ exit('attemp!'); }
  3. $parametr = $_GET['parametr'];
  4. $img = "images/land/".$parametr.".png";
  5. //var_dump($img); //для вывода картинки, однозначно лишнее
  6. if(!file_exists($img)){ exit('Файл не найден'); }
  7. $im1=imageCreateFromPNG("images/land/v2.png");
  8. // Картинка фон, на которую кладём.
  9. $im2=imageCreateFromPNG($img);
  10. imageCopy($im2,$im1,0,0,0,0,52,52);
  11. // Печать картинки в браузере.
  12. header("Content-type: image/png"); //переставил вниз, ибо если стоит вначале - ошибок не увидим
  13. imagePNG($im2);
kat69 Отправлено: 28 Мая, 2012 - 20:45:28 • Тема: динамическое формирование изображения • Форум: Графика в PHP

Ответов: 6
Просмотров: 4378
Как вариант, уменьшит нагрузку на сервер

CODE (php):
скопировать код в буфер обмена
  1. $uploadDir = "img";  //папка хранения сформированных изображений
  2. $uploadDir = $_SERVER['DOCUMENT_ROOT'] . "/" . $uploadDir . "/";
  3. //проверяем или был такой запрос раньше
  4. if (is_file($uploadDir . md5($_REQUEST['text']) . ".png")) {
  5.     header('Content-Type: image/png');
  6.     echo  file_get_contents($uploadDir . md5($_REQUEST['text']) . ".png");
  7. } else {
  8.     //если нет, делаем новое.
  9.     $im = @imagecreatetruecolor(120, 20)
  10.         or die('Невозможно инициализировать GD поток');
  11.     $text_color = imagecolorallocate($im, 233, 14, 91);
  12.     imagestring($im, 1, 5, 5, $_REQUEST['text'], $text_color);
  13.     // Выводим в браузер
  14.     header('Content-Type: image/png');
  15.     imagepng($im);
  16.     //Cохраням в папку
  17.     imagepng($im,$uploadDir . md5($_REQUEST['text']) . ".png");
  18.     imagedestroy($im);
  19. }

Страниц (2): « 1 [2]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB