2012-01-31 6 views
1

Google AppEngineでは、ブール値[]を画像に変換してから、画像を提供したいと考えています。ブール値[]を白黒ピクセルに変換します。私はその有力候補がAppEngineを使用して画像を作成して提供する

import com.google.appengine.api.images.Image; 
import com.google.appengine.api.images.ImagesService; 
import com.google.appengine.api.images.ImagesServiceFactory; 

// ... 
byte[] imageData; // ... 
ImagesService imagesService = ImagesServiceFactory.getImagesService();  
Image image = ImagesServiceFactory.makeImage(imageData); 

を提供して見ることができますが、私はどのようにすることができ、

byte[]にそして、私はこのイメージを持っていたら boolean[]を変換する方法、すなわち、 byte[] imageDataのフォーマットがどうあるべきか分かりませんクライアントはそれを得る?

答えて

1

ImageサービスAPIは、サポートされている任意のイメージファイル形式のデータを受け入れます。 this pageによると、これらのフォーマットには「JPEG、PNG、WEBP、GIF(アニメーションGIFを含む)、BMP、TIFF、ICO」が含まれます。 Imageサービスは、新しい画像データを最初から作成する方法を提供しません。しかし、グラフィックスライブラリを使用して、受け入れられたデータフォーマットの1つで画像を生成し、そのサービスを使用して別のフォーマットに変換したり、変換することができます。もちろん、グラフィックスライブラリによっては、ライブラリから直接最終イメージを取得し、そのサービスを使用することはできません。

// byte[] pngData = ... 
resp.addHeader("Content-Type", "image/png"); 
resp.getOutputStream().write(pngData); 

あなたは試してみたい場合:ちょうどあなたが使用しているデータ形式のために適切なContent-Typeヘッダーを設定し、レスポンスの出力ストリームに画像データのバイトを書き込み、画像を提供するために

ライブラリなしで画像データを生成する場合、the BMP formatが最も簡単かもしれません。画像サービスを使用してこれをPNGに変換することができます。

+0

ありがとうございました。問題は、App Engineで動作するグラフィックライブラリです。 – aez

+0

Dan Sandersonが正しいです。 [こちら](http://www.javaworld.com/javaworld/javatips/jw-javatip60.html?page=2)は、生のピクセル配列からBMP形式のバイト配列を生成するコードです。 AppEngineでは利用できないクラスへの参照はまだありますが、削除することはできます。 – aez

関連する問題