Chr*_*and 3 java google-app-engine blobstore
我们有一个应用程序服务于blobstore的一系列图像.这里有一个例子:
这是一个巨大的png,因此下载量为536K.
如果我们将其调整为400,它仍然很大(263k):
我们如何以某种更好的压缩方式请求或存储图片?我们的应用程序有一个移动客户端,等待273K让它变得非常慢.
Pet*_*ego 10
有图像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);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2167 次 |
最近记录: |