我想使用GD库制作带圆圈的缩略图。有没有现成的解决方案呢?我已经看过只有圆角的库。
答案 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;
}
}
}