如何使用GD制作带圆圈的缩略图

时间:2012-02-15 14:58:03

标签: php gd thumbnails

我想使用GD库制作带圆圈的缩略图。有没有现成的解决方案呢?我已经看过只有圆角的库。

1 个答案:

答案 0 :(得分:1)

这是我使用的脚本。它只是用半透明图案覆盖我的缩略图,这使得缩略图具有一些形状效果。

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;
  }
}
}