이미지의 1/4을 차지하도록 워터 마크의 크기를 자동으로 조정하려고합니다. 워터 마크 코드가 작동하지만 제대로 크기를 조정할 수 없습니다.PHP의 동적 워터 마크 PNG 크기 조정
<?php
$image = $_GET['src'];
$path_parts = pathinfo($image);
$extension=strtolower($path_parts['extension']);
$size = (imagesx($image)/2);
$stamp = ImageCreateFromPNG("watermark.png");
ImageAlphaBlending($stamp,true);
ImageSaveAlpha($stamp,true);
$w = imagesx($stamp);
$h = imagesy($stamp);
if($w==0 or $h==0) die("ERROR - zero image size");
$percent = $size/(($w>$h)?$w:$h);
$nw = intval($w*$percent);
$nh = intval($h*$percent);
$stamp_resized = ImageCreateTrueColor($nw,$nh);
ImageAlphaBlending($stamp_resized,false);
ImageSaveAlpha($stamp_resized,true);
if(!empty($transparent_color))
{
$transparent_new = ImageColorAllocate($stamp_resized,$transparent_color['red'],$transparent_color['green'],$transparent_color['blue']);
$transparent_new_index = ImageColorTransparent($stamp_resized,$transparent_new);
ImageFill($stamp_resized, 0,0, $transparent_new_index);
}
if(ImageCopyResized($stamp_resized,$stamp, 0,0,0,0, $nw,$nh, $w,$h))
{
ImageDestroy($stamp);
$stamp = $stamp_resized;
}
//Everything from here on works perfect
if(file_exists($image)){
if ($extension == 'gif')$im = imagecreatefromgif($_GET['src']);
if ($extension == 'jpg') {
$im = imagecreatefromjpeg($_GET['src']);
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, $sx, $sy);
}
}
else{
$im = imagecreatefromgif('images/no_picture.gif');
}
// Output and free memory
header('Content-type: image/jpeg');
imagejpeg($im);
imagedestroy($im);
?>
나는 오류 로그를 확인하고 이러한 오류가 있었다 :
[Thu Aug 09 16:47:05 2012] [error] [client 24.224.164.149] PHP Warning: imagesx() expects parameter 1 to be resource, string given in {path removed}/watermark.php on line 15
[Thu Aug 09 16:47:05 2012] [error] [client 24.224.164.149] PHP Warning: imagecreatetruecolor(): Invalid image dimensions in {path removed}/watermark.php on line 32
[Thu Aug 09 16:47:05 2012] [error] [client 24.224.164.149] PHP Warning: imagealphablending() expects parameter 1 to be resource, boolean given in {path removed}/watermark.php on line 34
[Thu Aug 09 16:47:05 2012] [error] [client 24.224.164.149] PHP Warning: imagesavealpha() expects parameter 1 to be resource, boolean given in {path removed}/watermark.phpp on line 35
[Thu Aug 09 16:47:05 2012] [error] [client 24.224.164.149] PHP Warning: imagecopyresized() expects parameter 1 to be resource, boolean given in {path removed}/watermark.php on line 44
그게 전부입니다. 나는 그것을 경로가 아닌 자원으로 나눠 주었다. – evandentremont