2016-05-12 16 views
1

私は2つの等しい画像に分割したいjpg画像を持っています。分割は画像の水平中央で行い、両方の部分を保存します(左部分、右部分)。たとえば、500x300の画像は、250x300の2つの画像に分割されます。私は適切な画像処理機能に精通しておらず、PHPの文書をチェックすると、 'imagecrop()'が文書化されていないことを明確に警告しています(http://php.net/manual/en/function.imagecrop.php)。 はまたStackOverflowの上で、私が見つけた唯一のことは、私が遊んしようとしたこのスニペットです:PHPはjpg画像を2つの等しい画像に分割して保存します

// copy left third to output image 
imagecopy($output, $orig,$padding,$padding,0, 0,$width/3,$height); 
// copy central third to output image 
imagecopy($output, $orig,2*$padding+$width/3,$padding,$width/3, 0,$width/3,$height); 

たぶん、あなたは正しい方向に私を指すことができます。

どうもありがとう

答えて

2

機能imagecopy()はよく&は正確にあなたがやりたいことができます文書化されています。たとえば:imagecreatefrompngimagecreatefromgifなどEG:

imagecopy($leftSide, $orig, 0, 0, 0, 0, $width/2, $height); 
imagecopy($rightSide, $orig, 0, 0, $width/2, 0, $width/2, $height); 

最初ofcourseのあなたのような機能を持つ変数$origであなたのイメージを作成する必要が

$orig= imagecreatefromjpeg('php.jpg'); 

次に、あなたがのために新しい空のイメージ変数を作成する必要があります両方の画像脇:imagecreatetruecolor、例えばと:

$leftSide = imagecreatetruecolor($width/2, $height); 
$rightSide = imagecreatetruecolor($width/2, $height); 

そしてちょうど新しいFILに、これらの2つの変数を保存します必要な拡張機能(例えば、imagejpeg)を使って関数を使用します。 EG:

imagejpeg($leftSide, 'leftSide.jpg'); 
imagejpeg($rightSide, 'rightSide.jpg'); 
+0

これを処理するには非常に多くの機能が必要とは思われませんでした。私の問題を解決しました。どうもありがとう! – DingDong

関連する問題