2012-02-15 5 views
0

GD 라이브러리를 사용하여 원으로 둘러싼 축소판을 만들고 싶습니다. 이것에 대한 해결책이 있습니까? 나는 둥근 모서리를 위해서만 도서관을 보았다.GD를 사용하여 원으로 둘러싼 축소판을 만드는 방법

+0

내가 생각하는 것이 실제로 원하는 것 인 경우 개념은 크게 다르지 않습니다. 찾고있는 것의 예를 게시 할 수 있습니까? – Brad

답변

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; 
    } 
} 
} 
관련 문제