Google App Engine for Javaを使ってみよう! (2)
山下 大介 [著] 2009/04/21 14:00

1 2 3 →

はじめに

 Googleのインフラで実行されるクラウドサービス「Google App Engine」が2009年4月7日にJavaに対応しました。Javaエンジニアにも利用できるようになった、Google App Engineを一緒に勉強して行きましょう!

 今回は簡単に画像処理ができる、Images Java APIを紹介したいと思います。

対象読者

  • ウェブサービス開発に興味のあるJavaエンジニア
  • Google App Engine for Javaに興味がある方

必要な環境

  • 「Google Plugin for Eclipse」がインストールされている、Eclipse 3.3(Europa)か3.4(Ganymede)

 開発環境の構築手順については、第1回の解説を参照してください。

プロジェクトの作成

 前回と同じように、ボタンメニューから[g]ボタンをクリックして新規プロジェクトを作成します。

 今回はGWTを利用しないので、[Use Google Web Toolkit]のチェックは外してください。Project nameは「ImageTest」、Packageは「com.daisukeyamashita.test.images」にしました。

Images Java APIとは?

 Google App Engineでは画像データを加工するAPIが提供されています。具体的には以下のような機能を備えています。

  • リサイズ
  • 回転
  • 切り出し
  • 色調変更

 対応している入力画像フォーマットは以下の通りで、出力画像フォーマットは「JPEG」「PNG」のみです。

  • JPEG
  • PNG
  • GIF(アニメーションGIFを含む)
  • BMP
  • TIFF
  • ICO

 なお入出力サイズは、ともに1MBに制限されているのでご注意下さい。

Images Java APIを使ってみよう!

 Google App Engineの「Images Java API」は、規模が小さく簡単に使える画像処理APIです。

 画像の加工は、加工処理を実行するサービス(ImageService)に、加工対象データ(Image)と加工処理(Transform)を与え実行するだけ、とシンプルです。1回の処理で1加工しかできませんので、「切り取ってから回転したい」という時は、「切り取り」と「回転」を続けて実行します。

 まずは、画像データを50x50のサイズに変更する実際のソースコードを見てみましょう。

ImagesService imagesService = ImagesServiceFactory.getImagesService(); // (1)
Image oldImage = ImagesServiceFactory.makeImage(oldImageData); //(2)
Transform resize = ImagesServiceFactory.makeResize(50, 50); //(3)
Image newImage = imagesService.applyTransform(resize, oldImage); //(4)
  1. ImageServiceインスタンスを取得します。
  2. 入力ストリームからImageインスタンスを生成します。
  3. 加工処理が定義されているTransformインスタンスを生成します。
  4. ImageServiceインスタンスで、Imageインスタンス(加工対象データ)にTransformインスタンス(加工処理)を実行します。

 これだけのコードで、画像データを50x50のサイズに画像を加工することができます。

画像サイズについて

 makeResizeは元画像のアスペクト比率をそのままに、引数に指定した矩形サイズに収まるように画像を加工します。つまり、200x200の画像をmakeResize(200, 50)で加工すると、50x50の画像が生成されます。現在のImages Java APIでは、アスペクト比を変更する手段が用意されていませんので、アスペクト比を変更するには、別のライブラリを利用して下さい。


1 2 3
→
INDEX
Google App Engine for Javaを使ってみよう! (2)Images Java API の使い方
Page1
はじめに
対象読者
必要な環境
プロジェクトの作成
Images Java APIとは?
Images Java APIを使ってみよう!
ファイルのアップロード
Images Java APIを実行する
まとめ
参考資料
プロフィール
山下 大介 ヤマシタ ダイスケ

  京都大学を中心とした、産官学共同プロジェクトのSOBAプロジェクトに参加後、同プロジェクトで開発したP2P配信によるVoIP技術を2005年に商業化。オープンソース、VoIP、P2P、クラウドコンピューティングに精通。趣味はGoogleの追っかけ。現在は、株式会社SOBAプロジェクト取締役。

ブログ:『~ ミネルヴァの梟は黄昏とともに飛び始める ~
所属:株式会社SOBAプロジェクト

Google Developer Day 2008サポーター, 2009サポーター
Google App Engine API Expert


注目の求人情報
プロジェクトマネージャー/大手製薬会社
臨床試験について、データマネジメント業務のプロジェクトマネジメントを行う等...
サーバ技術者・NE/ITコンサルティング企業
外資大手ベンダー、大手SIerとのプロジェクトに参加していただきます。主にUNIX系サーバを使用した業務...
コンサルタント/外資系戦略ファーム
シニア・マネジャーまたはシニア・エグゼクティブ <シニア・マネジャー> プロジェクトの進捗管理...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: