SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Google App Engine for Javaを使ってみよう!

Google App Engine for Javaを使ってみよう!
(2)Images Java API の使い方

Google App Engine for Javaを使ってみよう! (2)

  • このエントリーをはてなブックマークに追加

 2008年4月7日に発表されたGoogle App Engineが、ちょうど1年後の2009年4月7日にJavaに対応したことが発表されました。今回はそんなGoogle App Engine for Javaの面白い「Images Java API」の使い方を勉強したいと思います。

  • このエントリーをはてなブックマークに追加

はじめに

 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では、アスペクト比を変更する手段が用意されていませんので、アスペクト比を変更するには、別のライブラリを利用して下さい。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
ファイルのアップロード

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Google App Engine for Javaを使ってみよう!連載記事一覧

もっと読む

この記事の著者

山下 大介(ヤマシタ ダイスケ)

  京都大学を中心とした、産官学共同プロジェクトのSOBAプロジェクトに参加後、同プロジェクトで開発したP2P配信によるVoIP技術を2005年に商業化。オープンソース、VoIP、P2P、クラウドコンピューティングに精通。趣味はGoogleの追っかけ。現在は、株式会社SOBAプロジェクト取締役。ブログ:『~ ミネルヴァの梟は黄昏とともに飛び始める ~』所属:株式会社SOBAプロジェクトGoogle Developer Day 2008サポーター, 2009サポーターGoogle App Engine API Expert

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3836 2009/04/21 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング