画像を縮小してロゴを付けるGIMPスクリプト(Flickr用)

2011/10/4-2

最近、全日本剣道連盟主催の大会のネット中継を手伝っていますが、試合会場からUstreamなどで動画中継を行うと同時に、公式ブログ、Twitter、Facebook、Flickrなどで結果を迅速に伝えたり、「会場の雰囲気」をできるだけ伝えるようにしています。

ネットに掲載した写真を勝手に利用されないためにも、FlickrやTwitpicへの写真掲載時に写真にロゴをつけるということを行っているのですが、大会が行われている限られた時間内にロゴを掲載してアップするのは、中々大変な作業です。 そこで、オープンソースフリーソフトであるGIMPを使って写真画像を縮小したうえでロゴを自動的に貼付けられるスクリプトを作りました。

GIMPは、Schemeで自作スクリプトを組み込めるので、大会でのネット中継専用GIMPスクリプトを作った形です。

利用例

まず、最初にこのような写真ファイルがあります。

メニューの中から、「全剣連→Flickr処理」という項目を選びます。

すると、画像解像度が縮小されたうえで、ロゴが左上に掲載されます。 横長画像であれば横幅を640に、縦長であれば高さを640へと縮小します。 640以外のサイズを希望される方は、スクリプトの該当部分を変更してご利用下さい。

ロゴ画像として利用しているのは、以下のようなものです。 本物の画像は透明な背景に白となっていてみにくいので、説明のために背景を青っぽくしています。

保存まで一気に行ってしまう

さらに、自動的に別ファイルとして保存されます。

毎回「保存」を選択する時間が勿体無いので、一気にJPEGとして保存してしまうようにしました。

このサンプルでは、4752x3168を640x426へと縮小しているため、5.8MBが一気に374kBに縮小されました。 これによって、Ustreamなどの中継を行っている大会会場のインターネット回線への負荷を減らせるとともに、アップロードにかかる時間を劇的に短縮できるという効果もあります。

ただし、GIMPのSchemeでpreg-replaceが使えないようだったので、めんどくさくなって後ろに文字列を付けるだけといういい加減なスクリプトになっているので、必要に応じて修正してご利用下さい。

スクリプトの内容

このGIMPスクリプトを使いたい武道/競技/スポーツ団体の方で、「でも、自前用にカスタマイズする方法がわからない」という方はご連絡頂ければロゴの透明化処理等を行ったロゴ画像付きカスタマイズ版をお渡しします。 と、書いて連絡を頂く方の顔が浮かんでいますが(笑)。

スクリプトは、以下のような内容です。 MacosXであれば「~/Library/Application Support/Gimp/scripts/」に「.scm」拡張子を持つファイルとして置いたうえで、GIMPで「フィルタ→Script-Fu→スクリプトの再読み込み」を行って下さい。 Windows Vistaの場合は「C:\Users\ユーザ名\.gimp-2.6\scripts\」になります。 ダウンロードはこちらからどうぞ。


(define (script-fu-ajkf-flickr image drawable )
(let* (
    (org-width (car (gimp-image-width image)))
    (org-height (car (gimp-image-height image)))

    (ajkf-logo-layer (car (gimp-file-load-layer 0 image
      "/Users/hoge/logo-image/ajkf.png"))) ; change here

    (org-filename (car (gimp-image-get-filename image)))
    (new-filename)
    (merged-layer)
     )

(set! new-filename (string-append org-filename "-ajkf-flickr.jpg"))

(gimp-image-undo-group-start image)

    (if (> org-width org-height)
      (gimp-image-scale image 640 (* org-height (/ 640 org-width)))
      (gimp-image-scale image (* org-width (/ 640 org-height)) 640)
    )

    (gimp-image-add-layer image ajkf-logo-layer -1)

    (set! merged-layer (car (gimp-image-merge-visible-layers image 1)))
    (file-jpeg-save 1 image merged-layer
          new-filename new-filename 1.0 0 0 0
          "All Japan Kendo Federation" 0 0 0 1)

    (gimp-displays-flush)
    (gimp-image-clean-all image)

(gimp-image-undo-group-end image)

); end of let
); end of define

(script-fu-register
    "script-fu-ajkf-flickr"          ; script name
    "<Image>/全剣連/Flickr処理"      ; menu (change here)
    "Scale Image & add Logo"         ; description
    "Akimichi"                       ; author
    "Copyright 2011, Akimichi Ogawa" ; copyright
    "Oct 01, 2011"
    "RGB*, GRAY*"
    SF-IMAGE      "Image"     0
    SF-DRAWABLE   "Drawable"  0
); end of register


関連記事

最近のエントリ

過去記事

過去記事一覧

IPv6基礎検定

YouTubeチャンネルやってます!