gpt4 book ai didi

Android - 如何使用 View 布局尺寸裁剪 jpeg

转载 作者:太空狗 更新时间:2023-10-29 14:22:51 24 4
gpt4 key购买 nike

新手用户问题:

我已经搜索和试验了几天,需要一些帮助。我可能已经阅读了关于该主题的所有 SO 帖子,但我仍然无法理解。

我正在尝试裁剪相机预览图像的特定区域。问题是蓝色框是由顶部 = 150 和左侧 = 38,高度 = 292 和宽度 = 600 的布局定义的。图像的高度 = 2448,宽度 = 3264。

大框是相机预览画面,小框是我要裁剪的部分(显然我还没有发布图片的能力)。

-----------------------------|                           ||                           ||                           ||   ---------               ||   |       |               ||   ---------               ||                           |-----------------------------

How do I crop the image so I am only left with the portion in the box? I'll be displaying it on another activity so I am not worried about that part.

Just to complicate things, the box size and image size changes depending on the phone, and I need to work with API 8 (version 2.2, Froyo).

I would also prefer not to save the image to a file because then I would have to encrypt it (the picture would be an image of a check for deposit).

I am using Camera.takePicture() and the jpegCallback as in the following code snippet (initialBitmap would be the "big box" above, and rl would be the "small box"):

    PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
if ( data != null && data.length > 0 ) {
Bitmap initialBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

int bitmapHeight = initialBitmap.getHeight();
int bitmapWidth = initialBitmap.getWidth();

// get the "picture" frame
RelativeLayout rl = (RelativeLayout) findViewById( R.id.clear_layout );

int frameX = rl.getLeft();
int frameY = rl.getTop();
int frameHeight = rl.getHeight();

希望 View 坐标/尺寸与位图之间存在简单的数学关系。

我也愿意接受任何更好的方法来处理事情,但我尝试过使用预览数据本身(太小)和操作位图(内存不足错误)。

提前致谢。

最佳答案

万一有人关心,我从来没有找到这个问题的答案。我最终以不同的方式解决了这个问题。我使用了完整的预览区域,只是让我的“拍照”按钮足够透明,不会挡路。我也从未裁剪过,但图像大小接近裁剪后的大小。

根据我去年学到的所有知识,我认为预览大小和生成的 jpg 文件大小之间没有关系。对于不同的手机摄像头,这种关系似乎有所不同。

如果有人找到了恋爱关系,我仍然很乐意了解它。

关于Android - 如何使用 View 布局尺寸裁剪 jpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15164721/

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