我的源图像为450x450像素。我想用PHP将它们分成9个150x150的peices
我使用以下代码。
我得到9张图片,但裁剪不合适。
这是屏幕截图:
最后一个是我正在使用的源图像
这是我的代码。
<?php
$targ_w = $targ_h = 150;
$jpeg_quality = 25;
$src = "puzzleimages/puzzle2.jpg";
$y = 0;
$y2 = 150;
$x = 0;
$x2 = 150;
$i = 3;
$name = 0;
while( $i-- ){
$j = 3;
while( $j-- ){
$img_r = imagecreatefromjpeg($src);
$dst_r = ImageCreateTrueColor( $targ_w, $targ_h );
imagecopyresampled($dst_r,$img_r,0,0,$x,$y,$targ_w,$targ_h,$x2,$y2);
//header('Content-type: image/jpeg');
imagejpeg($dst_r,'puzzleimages/'.++$name.'.jpg', $jpeg_quality);
$x += 150;
$x2 += 150;
}
$y += 150;
$y2 += 150;
$x = 0;
$x2 = 150;
}
?>
任何人都可以建议出现问题吗?
答案 0 :(得分:2)
我认为您不需要继续更改源宽度/高度,它应始终为150。试一试:
imagecopyresampled($dst_r,$img_r,0,0,$x,$y,$targ_w,$targ_h,$targ_w,$targ_h);
答案 1 :(得分:1)
bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int$dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
请参阅Php文档,需要更改的唯一参数是src_x
和src_y
。由于您更改了x2
和y2
,因此将应用以下内容:
如果源和目标坐标以及宽度和高度不同,将执行图像片段的适当拉伸或收缩。