Как сделать обведенные миниатюры с помощью GD - PullRequest
0 голосов
/ 15 февраля 2012

Я бы хотел сделать миниатюры в кружке, используя библиотеку GD. Есть ли готовые решения для этого? Я видел библиотеки только для закругленных углов.

1 Ответ

1 голос
/ 15 февраля 2012

Вот скрипт, который я использую.Он просто перекрывает мой эскиз полупрозрачным узором, что делает эскиз с некоторым эффектом формы.

ini_set("memory_limit","64M");
ini_set("gd.jpeg_ignore_warning", 1);
$img_name=$_GET[f];
$type=$_GET[type];
if (isset($img_name)) {
 $img_name = $_SERVER["DOCUMENT_ROOT"]."/catalog/".$img_name;
 $info = @getimagesize($img_name);
 $ext = @$info[2];
 $header = @$info['mime'];
 $board = ImageCreateFrompng("images/item".$type.".png");
 $im   = ImageCreateTrueColor(170,140);
 $bg = imagecolorallocate($im, 255, 255, 255);
 imagefill($im,0,0,$bg);
 header("Content-type: $header"); 
switch($ext) {
  case 1: { // GIF
    $img = @imagecreatefromgif($img_name);
    if ($img) {
      imagecopyresized($im, $img, (170-$info[0]), 0, 0, 0, @$info[0], @$info[1],     @$info[0], @$info[1]);
  imagecopy($im, $board, 0, 0, 0, 0, 170, 140);
  imagegif($im, '', 100);
  return $chache_fn;
} break;
  }
  case 2: { // JPG
    $img = @imagecreatefromjpeg($img_name);
    if ($img) {
      imagecopyresized($im, $img, (170-$info[0]), 0, 0, 0, @$info[0], @$info[1],     @$info[0], @$info[1]);
      imagecopy($im, $board, 0, 0, 0, 0, 170, 140);
      imagejpeg($im, '', 100);
    } break;
  }
  case 3: { // PNG
    $img = @imagecreatefrompng($img_name);
    if ($img) {
      imagecopyresized($im, $img, (170-$info[0]), 0, 0, 0, @$info[0], @$info[1],     @$info[0], @$info[1]);
      imagecopy($im, $board, 0, 0, 0, 0, 170, 140);
      imagepng($im, '', 9);
    } break;
  }
  case 6: { // BMP
    $img = @imagecreatefromwbmp($img_name);
    if ($img) {
      imagecopyresized($im, $img, (170-$info[0]), 0, 0, 0, @$info[0], @$info[1],     @$info[0], @$info[1]);
      imagecopy($im, $board, 0, 0, 0, 0, 170, 140);
      imagewbmp($im, '', 100);
    } break;
  }
}
}
...