簡體   English   中英

在GAE BlobStore中旋轉圖像

[英]Rotating an image in the GAE BlobStore

我正在嘗試旋轉blobstore中的圖像,然后將其保存回blobstore,但是我不知道如何將其保存回blobstore? 我確實找到了 ,但好像FileFile API已棄用,那么我該怎么用呢? 到目前為止,這是我的代碼:

// Get image from blobstore
Image img = ImagesServiceFactory.makeImageFromBlob(new BlobKey(document.blobstoreKey));

// Rotate 90 degrees
Transform transform = ImagesServiceFactory.makeRotate(90);
img = ImagesServiceFactory.getImagesService().applyTransform(transform, img);

// HERE: How to save back to the blobstore?
...

不幸的是,您遇到了blobstore的局限性,如https://cloud.google.com/appengine/docs/java/blobstore/ ...所述:

除通過用戶上傳的文件外,應用程序無法創建或修改Blobstore值。

...而這正是您要執行的操作-創建blobstore值,而不是讓用戶上傳文件,而是保存img.getImageData()返回的byte[]

如果您控制客戶端(瀏覽器上的Javascript應用程序),則可以解決此問題,將字節發送給瀏覽器,並讓Javascript立即轉身並“上傳”新的Blobstore。 但這確實是很棘手的,而且本質上很慢,給瀏覽器增加了“往返”功能,並返回了可能很大的圖像數據。

相反,我想以此為誘因,將blobstore拋在后面,而轉移到Google雲存儲-特別是https://cloud.google.com/appengine/docs/java/googlecloudstorageclient/

例如,使用GCS,您可以只使用服務的createOrReplace方法,該方法在https://cloud.google.com/appengine/docs/java/googlecloudstorageclient/javadoc/中進行了說明 ,並將該byte[]ByteBuffer.wrap傳遞給它,然后瞧,這一切都為您完成了,簡單,快速,無並發症。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM