gpt4 book ai didi

java - 如何使用 Google App Engine Blobstore 压缩图像

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:48:42 25 4
gpt4 key购买 nike

我们有一个应用程序可以为来自 blobstore 的一系列图像提供服务。一个示例在这里:

http://lh4.ggpht.com/f76xUkRZLRkb_Qz5uu82TX3LoBRh4eYb9hxYwMRMLCk5ghO_OL0DW2v4rRnkewUyDWfBuBttgbUvuJJXwtFQosEB=s0

这是一个巨大的 png,因此下载为 536K。

如果我们将它的大小调整为 400,它仍然很大 (263k):

http://lh4.ggpht.com/f76xUkRZLRkb_Qz5uu82TX3LoBRh4eYb9hxYwMRMLCk5ghO_OL0DW2v4rRnkewUyDWfBuBttgbUvuJJXwtFQosEB=s400

我们如何以某种更好的方式请求或存储图片压缩?我们的应用程序有一个移动客户端,正在等待273K 让它变得非常慢。

最佳答案

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);

关于java - 如何使用 Google App Engine Blobstore 压缩图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13728233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com