我使用Camera2 api进行静态图像捕获并将其保存到jpeg文件中。问题是文件的大小总是> 900kb,即使我将图像尺寸设置为可用的最小尺寸并将jpeg质量降低。
这就是我在ImageAvailableListener
中保存文件的方法。它是一个xamarin项目,所以代码在c#中。
image = reader.AcquireLatestImage();
ByteBuffer buffer = image.GetPlanes()[0].Buffer;
byte[] bytes = new byte[buffer.Remaining()];
buffer.Get(bytes);
output = new FileOutputStream(File);
output.Write(bytes);
output.Close();
该文件应该是~20kb,那么为什么我的文件大小不能低于900kb?
答案 0 :(得分:1)
您还可以降低捕获图像质量
mPreviewRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
mPreviewRequestBuilder.set(CaptureRequest.JPEG_THUMBNAIL_QUALITY, (byte) 70); // add this line and set your own quality
答案 1 :(得分:0)
我明白了。需要创建一个位图来应用压缩:
var content = new Vue({
el: '#content',
data: {
items: data
}
});
<div class="short" v-for="item in items">
<div class="top">
<img :src="item.userAvatar" />
{{ item.userName }}
</div>
<div class="bottom">
<div v-for="(i, idx) in item.items" :key="idx">{{ i.name }} {{ i.type }}</div>
</div>
</div>