我們有一個應用程序,用於從blobstore處服務器中的一系列圖像。一個 例子是在這裏:如何使用Google App Engine壓縮圖像Blobstore
這是一個巨大的PNG,所以這個下載的536K。
如果我們把它調整到400跨越,它仍然是巨大的(263K):
我們怎樣才能申請或圖片存儲在某種更好 壓縮?我們有一個移動客戶端用於我們的應用程序,並等待通過 273K使它真的很慢。
我們有一個應用程序,用於從blobstore處服務器中的一系列圖像。一個 例子是在這裏:如何使用Google App Engine壓縮圖像Blobstore
這是一個巨大的PNG,所以這個下載的536K。
如果我們把它調整到400跨越,它仍然是巨大的(263K):
我們怎樣才能申請或圖片存儲在某種更好 壓縮?我們有一個移動客戶端用於我們的應用程序,並等待通過 273K使它真的很慢。
您可以啓用Pagespeed service來即時重新壓縮圖像。
您可以使用PIL從您的前端實例動態地提供重新壓縮的圖像。
可以上傳圖像的型動物版本(具有不同的壓縮比)到blobstore或cloud storage和(使用CSS或客戶端邏輯)選擇的版本顯示客戶端。
有Images API。壓縮和調整圖像大小:
// get image from blobstore
ImagesService imagesService = ImagesServiceFactory.getImagesService();
Image oldImage = ImagesServiceFactory.makeImageFromBlob(blobKey);
// compress & resize it
OutputSettings settings = new OutputSettings(ImagesService.OutputEncoding.JPEG);
settings.setQuality(90);
Transform transform = ImagesServiceFactory.makeResize(newWidth, newHeight)
Image newImage = imagesService.applyTransform(transform, oldImage, settings);
byte[] blobData = newImage.getImageData();
//save data to blobstore
FileService fileService = FileServiceFactory.getFileService();
AppEngineFile file = fileService.createNewBlobFile("image/jpeg", someFilename);
FileWriteChannel writeChannel = fileService.openWriteChannel(file, true);
writeChannel.write(ByteBuffer.wrap(blobData));
writeChannel.closeFinally();
// get the blobKey to newly written data
BlobKey blobKey = fileService.getBlobKey(file);
我可以知道我是如何在python中做同樣的事嗎? –
@AvinashRaj:還有Python的Images API:https://cloud.google.com/appengine/docs/python/images/ –