JPEGEncoder を使用して生データ ByteArray を JPEG 形式に変換しようとしましたが、モバイルでは遅すぎます (モバイルでテストしました)。Javaで同じことを行うにはどうすればよいですか? 生データ バイトを Java に送信し、Java で JPEG にエンコードします。com.sun.* の下で JpegImageEncoder としてそれらのいくつかを試しましたが、jdk7 では減価償却されています。Javaでこれを行うにはどうすればよいですか、またはそのようなことを行ったFlexモバイル開発者からの提案はありますか?
更新:次のコードを試しましたが、奇妙な結果が得られました:
public void rawToJpeg(byte[] rawBytes, int width, int height, File outputFile){
try{
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
int count = 0;
for(int h=0;h<height;h++){
for(int w=0;w<width;w++){
bi.setRGB(w, h, rawBytes[count++]);
}
}
Graphics2D ig2 = bi.createGraphics();
Iterator imageWriters = ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter imageWriter = (ImageWriter) imageWriters.next();
ImageOutputStream ios = ImageIO.createImageOutputStream(outputFile);
imageWriter.setOutput(ios);
imageWriter.write(bi);
}catch(Exception ex){
ex.printStackTrace();
}
}
結果:
PSそれはところで私の写真でなければなりません:)