내가 인터넷을 부끄러움없이 몰아 치는이 함수 cropit은 기존 이미지에서 90x60 영역을 잘라냅니다.PHP - 어떻게 고유 한 변수 이름을 보호합니까?
이 코드에서는 하나 이상의 항목 (이미지)에 대해이 기능을 사용할 때 다른 기능 (동일한 출력 공간을 차지하도록)이 표시됩니다.
나는이 함수가 생성 될 때 이미지의 목적지 (imagecopy)와 동일한 (정적 인) 이름 ($ dest)을 가지고 있기 때문이라고 생각한다.
$ dest 변수의 "이름"역할을하는 cropit 함수의 두 번째 인수를 포함하고 있지만 작동하지 않았습니다.
전체 공개의 목적으로 나는 22 시간의 PHP 경험을 가지고 있습니다. (마지막으로 잠을 잤던 이래로 동일한 시간 수를 보냈습니다) 나는 그다지 똑똑하지 않습니다.
여기에 완전히 다른 것이 있어도 일반적으로 변수에 항상 고유 한 이름이 지정되도록하는 방법을 사용하는 것이 유용 할 것입니다.
<?php
function cropit($srcimg, $dest) {
$im = imagecreatefromjpeg($srcimg);
$img_width = imagesx($im);
$img_height = imagesy($im);
$width = 90;
$height = 60;
$tlx = floor($img_width/2) - floor ($width/2);
$tly = floor($img_height/2) - floor ($height/2);
if ($tlx < 0)
{
$tlx = 0;
}
if ($tly < 0)
{
$tly = 0;
}
if (($img_width - $tlx) < $width)
{
$width = $img_width - $tlx;
}
if (($img_height - $tly) < $height)
{
$height = $img_height - $tly;
}
$dest = imagecreatetruecolor ($width, $height);
imagecopy($dest, $im, 0, 0, $tlx, $tly, $width, $height);
imagejpeg($dest);
imagedestroy($dest);
}
$img = "imagefolder\imageone.jpg";
$img2 = "imagefolder\imagetwo.jpg";
cropit($img, $i1);
cropit($img2, $i2);
?>
HAHAHAHAHA, 재미있는 설명을 참조하십시오 :)하지만 정확히 당신의 문제? 어떤 이름을 고유하게 만들 필요가 있습니까? –
Mmh 코드를 사용하여 더 많은 이미지를 잘라내야합니다. * 하나는 다른 하나 위에 표시됩니다. * 두 개의 다른 이미지가 하나에 포함되어 있습니까? Btw. 두 번째 매개 변수는 아무 것도하지 않고 아무 쓸모가 없습니다 ('$ i '에 대한 값을 정의조차하지 않습니다.) –