2
我必須管理從客戶端拍攝的一些圖像。GoogleAppEngine:如何防止圖像調整大圖像失敗
到現在爲止,我的代碼如下:
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)。
我該如何實現這個目標?
我不能直接使用resize方法,因爲我不知道圖像應該調整大小的確切寬度&。此外,取決於圖片的編碼(png,jpeg等),圖像的大小也可以使用固定的高度和寬度而變化。
對於如何解決這個問題,我確實沒有有效的想法:我能看到一個解決方案的唯一方法是繼續嘗試更低和更低的維度,直到我獲得一個大小適中的圖像,但這顯然是不可接受的表演條款...
請幫幫我!
非常感謝您
再見
cghersi
爲什麼你需要讓圖像成爲特定的文件大小?如果僅僅是由於API調用限制,你可以使用Blobstore,正如bdonlan指出的那樣。 –