クライアントから撮影したいくつかの画像を管理する必要があります。
今まで、私のコードは次のとおりです。
Image oldImage = null;
try {
oldImage = ImagesServiceFactory.makeImage(imageBuf);
} catch (Exception e) {
log.severe("Cannot make the image due to " + e);
return;
}
int newWidth = ??; //how can I guess this value to reach a size < 1MB??
int newHeight= ??; //how can I guess this value to reach a size < 1MB??
Transform resize = ImagesServiceFactory.makeResize(newWidth, newHeight);
Image newImage = imagesService.applyTransform(resize, oldImage); //Exception if > 1MB
このような画像は GAE のサイズ制限 (1 MB) を超える可能性があるため、1 MB 弱 (たとえば 950kB) のサイズになるようにサイズ変更またはトリミングしたいと考えています。
どうすればこの目標を達成できますか?
画像のサイズを変更する正確な幅と高さがわからないため、サイズ変更方法を直接使用することはできません。
さらに、画像のエンコーディング (png、jpeg など) によっては、固定の高さと幅を使用しても画像のサイズが異なる場合があります。
この問題に対処する方法について、私は本当に効率的なアイデアを持っていません。解決策を確認できる唯一の方法は、適切なサイズの画像が得られるまで、より低い次元で試し続けることですが、これは明らかにパフォーマンスの観点から受け入れられません。 ..
私を助けてください!!
どうもありがとうございました
さよなら
シゲルシ