3 回答

TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊
你可以更換
$im2 = imagecrop($im, ['x' => 0, 'y' => 0, 'width' => $width, 'height' => $slice[$i]]);
和
$im2 = imagecrop($im, ['x' => 0, 'y' => $slice[$i] * $i, 'width' => $width, 'height' => $slice[$i]])
神奇之處在于:每次循環(huán)運(yùn)行時(shí)都必須更新 Y 軸。在您的代碼中,Y 始終為 0。這就是為什么每次裁剪一部分時(shí),它都從主圖像的頂部開(kāi)始。通過(guò)替換 Y 靜態(tài)值,Y 每次都動(dòng)態(tài)變化,每個(gè)圖像部分的 Y 軸從上一個(gè)裁剪部分被切斷的地方開(kāi)始。

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
在 imagecrop 函數(shù)中,y坐標(biāo)始終設(shè)置為 0。因此,在循環(huán)時(shí),圖像從初始坐標(biāo)裁剪y=0到$slice[$i]
我會(huì)建議用戶遵循 for 循環(huán):
for($i=0;$i<count($slice);$i++){
$im2 = imagecrop($im, ['x' => 0, 'y' => $slice[$i] - $a, 'width' => $width, 'height' => $slice[$i]]);
if ($im2 !== FALSE) {
imagejpeg($im2, "test/example-$i.jpg");
imagedestroy($im2);
}
}

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
你正在改變高度,你應(yīng)該改變 y 值
...
$a = 0;
while($a<=$height){
$slice[] = $a;
$a+=20;
}
if($a>$height && end($slice) !== $height){
$slice[] = $a+($height-$a);
}
for($i=0;$i<count($slice);$i++){
$im2 = imagecrop($im, ['x' => 0, 'y' => $slice[$i], 'width' => $width, 'height' => 20);
if ($im2 !== FALSE) {
imagejpeg($im2, "test/example-$i.jpg");
imagedestroy($im2);
}
}
...
- 3 回答
- 0 關(guān)注
- 181 瀏覽
添加回答
舉報(bào)