2009-09-02 16 views
1

私は多くの(約1000)画像(プリントスクリーン)を持っています。これらの画像を切り抜く必要があります(切り抜かれた画像はすべてフル画像の同じ領域にあります)。画像を切り取るためのスクリプト

私はこれをPHPで行うことができますか?あるいは、GIMPはこれを行うためにいくつかのマクロスクリプトをサポートしていますか?

ありがとうございます。

答えて

2

GD image functionsを使用してPHPで実行できます。

スクリプトは、この(テストしていない)のようなものに見えるかもしれません:あなたはGD image manipulation libraryが必要ですPHPでこれを行うには

$it = new RecursiveDirectoryIterator('./screenshots'); 
foreach ($it as $file) 
{ 
    if (!preg_match('/\.jpe?g$/i', $file->getFilename())) 
     continue; 

    $src = imagecreatefromjpeg($file->getRealPath()); 
    $dest = imagecreatetruecolor(1000, 1000); 

    imagecopyresampled($desc, $src, 0, 0, X_OFFSET, Y_OFFSET, 1000, 1000, WIDTH, HEIGHT); 
    imagejpeg($dest, './resized/' . $file->getFilename()); 
} 
1

を。次に、imagecopy()機能を使用して画像をトリミングすることができ、他の多くのGD機能は、必要な方法で画像を操作することができます。

3

Gregを使用する以外は、Gregとn1313が提案したとおり、ImageMagickも使用できます。グレッグのソリューションに似ていますが、(画像をトリミングすることができないか、書き込むことができません)新しいイメージを作成するときに

$original_image = new Imagick($file->getRealPath()); 
$dest_image = $original_image->clone(); 
$dest_image->cropImage($width, $height, $x, $y); 
$dest_image->writeImage('./resized/' . $file->getFilename()); 

であなたは、例外のチェックかもしれない(すなわち、画像を開くことができない)、またはcropImageとwriteImageにfalseを返されました。

関連する問題