getServingUrl是一種從AppEngine數據存儲獲取圖像的便捷方式,但似乎想要自動轉換圖像。使用ImageServices獲取原始圖像getServingUrl
例如,如果我這樣做:
ServingUrlOptions servingUrlOptions = ServingUrlOptions.Builder.withBlobKey(blobKey);
String payload = "{ \"image\" : \"" + mImagesService.getServingUrl(servingUrlOptions) + "\" }";
我得到一個URL與調整大小尺寸的圖像。例如,如果我上傳960 x 640圖像,則默認網址會將我指向512 x 341圖像。
所以,你說,在URL中應用變換並設置s960。這確實會返回一個960 x 640的圖像,但它已經被轉換 - 如果您將圖像與原始圖像進行比較,則可以看到圖像中的工件。
服務器適當地存儲圖像,這要歸功於技術,我發現here做裁剪到原來的大小:
Image image = ImagesServiceFactory.makeImageFromBlob(blobKey);
Transform noOpCrop = ImagesServiceFactory.makeCrop(0, 0, 1, 1);
image = mImagesService.applyTransform(noOpCrop, image);
LOGGER.info("Stored image " + image.getWidth() + ", " + image.getHeight());
我還沒有實際看,看是否包含原始字節或不是,但它並不重要,因爲如果我只是要發回字節,我不妨將數據直接從存儲中取出,並將其設置爲自定義圖像服務servlet的有效負載。
寫這我意識到這聽起來更像是一個比一個問題,功能請求,所以我會提出這樣說:有沒有更好的解決方案,通過一個特定的servlet服務的原始圖像比?
使用PHP而不是Java可以參考這篇文章http://stackoverflow.com/questions/37646849/how-can-we-use-firebase-image-file-and-resize-them-using-get-serving -url/37673504#37673504 –