これは私のコードですが、私は知らない理由が、私はそれのサイズが変更された垂直方向の画像をアップロードし、私は両側にある2本のブラックストライプを得るとき。ワイド画像ではほとんどの場合うまく動作しますが、画像によっては黒い縞も見えます。どうすれば修正できますか?PHP作物背の高い画像
私の目的は、すべての画像をトリミングすることで、私はトリミングしたい水平ちょうど私のボックスに合わせてヒント、および垂直はとても幅が同じであり、彼らは何の上下をカットされていません。
$thumb_height = 200;
$thumb_width = 300;
$thumb = imagecreatetruecolor($thumb_width, $thumb_height);
if($width >= $height) {
// If image is wider than thumbnail (in aspect ratio sense)
$new_height = $thumb_height;
$new_width = $width/($height/$thumb_height);
} else {
// If the thumbnail is wider than the image
$new_width = $thumb_width;
$new_height = $height/($width/$thumb_width);
}
$output_filename_mid = 'uploads/'.IMG_L.$fileName;
imagecopyresampled($thumb,
$image,
0 - ($new_width - $thumb_width)/2, // Center the image horizontally
0 - ($new_height - $thumb_height)/2, // Center the image vertically
0, 0,
$new_width, $new_height,
$width, $height);
imagejpeg($thumb, $output_filename_mid, 85);
これは、ユニットテストを使用するのに最適な種類の例です。 – Jacob
@Jacob - ユニットテストは何ですか? [ユニットテスト](http://en.wikipedia.org/wiki/Unit_testing)で – Francesco
あなたが意図したとおりに、あなたのコードが動作していることを自信を与えるために、さまざまなシナリオのためのテストケースを作成することができます。私はx、y、幅と高さを返す関数を作るだろう。その後、gd関数を使用します。 – Jacob