Forum Webscript.Ru

Программирование => PHP => Тема начата: Uzver от 17 Августа 2004, 16:29:39

Название: проблемы с ImageCreateTrueColor
Отправлено: Uzver от 17 Августа 2004, 16:29:39
В наличии имеется небольшой скрипт, назначение которого пропорциональное изменение размеров картинки. Проблема заключается в следующем: в случае, когда размер оригинальной картинки превышает размер картинки получаемой на выходе более чем в полтора раза по правому и нижнему краям у выходной картинки появляются черные полосы. При чем данный «глюк» проявляется на различных серверах в соотношении где-то 60/40. Пробовал привязать его возникновение к настройкам апача, ничего не вышло. Если кто-то сталкивался с проблемой, или знает как ее решить, буду признателен за помощь.
Название: проблемы с ImageCreateTrueColor
Отправлено: Uzver от 17 Августа 2004, 17:14:44
и сам код скрипта, пример можно сказать хрестоматийный...

      foreach ($_REQUEST as $key=>$value) {
              $$key=$value;
      }//foreach

     function LoadJpeg($imgname) {
               $im = @imagecreatefromjpeg ($imgname);
               if (!isset($im)) {
                   $im  = imagecreate (150, 30);
                   $bgc = imagecolorallocate ($im, 255, 255, 255);
                   $tc  = imagecolorallocate ($im, 0, 0, 0);
                   imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
                   imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc);
               }
               return $im;
     }//function

     $max_width = $w;
     $max_height = $h;

      $size = GetImageSize($image);
      $width = $size[0];
      $height = $size[1];

      $x_ratio = $max_width / $width;
      $y_ratio = $max_height / $height;

      if (($width <= $max_width) && ($height <= $max_height) ) {
          $tn_width = $width;
          $tn_height = $height;
      }
      elseif (($x_ratio * $height) < $max_height) {
          $tn_height = ceil($x_ratio * $height);
          $tn_width = $max_width;
      }
      else {
          $tn_width = ceil($y_ratio * $width);
          $tn_height = $max_height;
      }

      $src = LoadJpeg($image);

      $dst = ImageCreateTrueColor($tn_width,$tn_height);
      ImageCopyResized($dst, $src, 0, 0, 0, 0,$tn_width,$tn_height,$width,$height);
     header("Content-type: image/jpeg");
     ImageJpeg($dst, null, -1);
     ImageDestroy($src);
     ImageDestroy($dst);
?>
Название: проблемы с ImageCreateTrueColor
Отправлено: Меняздесьдавнонет от 17 Августа 2004, 17:55:32
можно спросить?
почему обязательно, задавая свои ламерские вопросы, надо влезать в чужую тему и давать там ламерские ответы?
Название: проблемы с ImageCreateTrueColor
Отправлено: Uzver от 17 Августа 2004, 18:00:49
потому что я пытаюсь понять то, что мне непонятно и интересно, и ни кому не навязываю свою точку зрения и свои условия
Название: проблемы с ImageCreateTrueColor
Отправлено: Меняздесьдавнонет от 17 Августа 2004, 18:08:02
за твое поведение в другом топике я этот закрываю.

"Не навязываю"? Это ты мне - МНЕ - рассказываешь, как работать с регистер глобалс - офф?
И ты еще споришь со мной, что код, который ты привел - идиотский?
И ты не ответил мне на вопрос, который я тебе задал?
И после этого ты заявляешь мне, что пытаешься что-то понять?
вон отсюда.