2009-08-28 6 views
0

私はウェブページに入れている画像が大量です。すべての画像属性を辛抱強く入力するのではなく、私の仕事をするスクリプトを書くことができると思いました。私はちょうど正しい方向に少し押す必要があります。初心者は、データを取得して使用可能な形式で返すスクリプトのアドバイスが必要です

スクリプトで各画像の幅と高さを取得し、これを使用しているURLを含むimgタグにフォーマットします。私は最初に、ディレクトリ内のファイルをループして、探している結果をファイルに出力することを考えています。コピーして貼り付けることができます。

最終的には、各ファイルを選択して結果をクリップボードに保存し、ドキュメントに直接貼り付けるGUIが必要です。しかし、私はこれが今のところ私の外にあると信じています。

私は基本的なコーディングについて理解しており、PythonとPHPでスクリプトをばらばらにしました。

どこから始めますか? Pythonを使用できますか?またはPHP?または別の言語ですか? PHPには必要なデータを返すgetimagesize()関数があります。 Pythonにも同様の機能がありますか?

長引くことは申し訳ありません。そして、どんな入力にも感謝します。

+0

ない本当の答えが、:しかし、それは必ずしも最良の方法(それは後半だ、私は疲れている、など)ではありません。私はイメージのために特に誰かを知らないが、wordpressかPloneは心に浮かぶ。 –

答えて

1

もっと良い解決策は、ドキュメントに入れるすべてのイメージ要素のリストを生成するスクリプトを作成するのではなく、目的のドキュメントでその場でイメージ要素を生成することです。これは次のように行うことができる:あなたがそれらを指定する必要がないようIMG要素に画像の高さと幅を含めるしたいと思う理由

if ($handle = opendir('/path/to/images')) { 
    while (false !== ($file = readdir($handle))) { 
     ?> 
     <img src="http://you.server.com/path/to/images/<?php echo $file ?>" alt="<?php echo $file ?>" /> 
     <?php 
    } 
    closedir($handle); 
} 

さらに私は理解していません。高さと幅は、ブラウザが自動的に実際のサイズを表示するので、画像の寸法を変更するためにのみ使用されます。

しかし、getimagesize()関数はうまくいくイメージサイズ含めるために:PILをチェックhttp://nl2.php.net/function.getimagesize

+3

幅と高さを指定しないと、レンダリングエンジンは、イメージがロードされて(少なくとも部分的に)それらの寸法が分かるまで待たなければならず、ページがロードされている間にレイアウトが煩わしいものになります。 –

+0

OK画像サイズを追加するには、次のようにしてください: if($ handle = opendir( '/ path/to/images')){ while(false!==($ file = readdir($ handle))){ $ size = getimagesize( '/ path/to/images /'.$ファイル); ?> src = "http://you.server.com/path/to/images/ "/> <? ph } closedir($ handle); } 詳細:私のポストへのお返事についてhttp://nl2.php.net/function.getimagesize –

3

from PIL import Image 
im = Image.open("yourfile.jpg") 
print im.size 

参照してください。ファイルをループするために

if ($handle = opendir('/path/to/images')) { 
    while (false !== ($file = readdir($handle))) { 
     $size=getimagesize('/path/to/images/'.$file); 
     ?> 
     <img <?php echo $size[3] ?> src="http://you.server.com/path/to/images/<?php echo $file ?>" alt="<?php echo $file ?>" /> 
     <?php 
    } 
    closedir($handle); 
} 

の詳細情報をthis tutorial

0

またImagemagickからシェルidentifyコマンドを使用することができます。

for file in dir/*; do 
    identify -format "Width: %w, Height: %h" $file 
done 
0

私は、これはあなたがやりたいことだと思います。私が代わりにコンテンツmanagementyシステムの事のいくつかの並べ替えを使用してになります。

<?php 

$directory = "img"; // The path in which your images are located. 

if ($directory) { 
$files = scandir($directory); // $files becomes an array of files in the relevant directory. 
} 

foreach($files as $k => $v) { 
    if ($v == "." || $v == "..") { 
    // because I'm not good enough to think of a better way 
    unset($k); 
    } 
    else { 
    $size = getimagesize($directory . "/" . $v); 
    $images[] = array('img' => $v, 'w' => $size[0], 'h' => $size[1]); // $size[0] is width, $size[1] is height, both in px. 
    } 
} 

unset($files); // I just like to clear as I go. I make more than enough mess as it is without keeping it around. 

    if ($images) { 
    foreach($images as $key => $value) { 
     echo "\n\t\t<img src=\"$directory/" . $value[img] . "\" width=\"" . $value[w] . "px\" height=\"" . $value[h] . "px\" alt=\"" . $value[img] . "\" />"; 
    } 
    } 

?> 
+0

どうもありがとうございました。私はPHPでおしゃべりしていたので、いくつかのリビジョンで提案したものと一緒に行きました。ここに私が思い付いたものです: $ Vとして$ファイル)\t のforeach。 } else { $ properties = getimagesize($ directory。 "/"。$ v); \t \t ますfwrite($ fpは、 " \ nを"); \t \t } } ?> これは私の必要とすることですが、適切な手順に従わない場合があります。 Tx –

+0

あなたが私の提案に同行したなら、あなたは答えを受け入れるつもりだと思っています。=)一方、あなたのコードが十分に異なっていれば、あなた自身の評価によってあなた自身が質問に答え、それを受け入れるべきです。コードでは答えがコメントよりも読みやすくなるからです。=) –

関連する問題