为了账号安全,请及时绑定邮箱和手机立即绑定

Android Java中如何将位图转换为图像

Android Java中如何将位图转换为图像

ibeautiful 2023-10-13 10:26:51
我想将我的位图转换为图像,而不是可绘制的图像,我已经看到了一些示例,他们正在将位图转换为可绘制的图像,但我需要 media.image(image) ,然后我用进一步的逻辑处理该图像。帮我解决这个问题简而言之,我需要将位图转换为图像。 Bitmap original_with_water_mark= addWatermark(original_image_bitmap,water_mark_bitmap,300);我需要original_with_water_mark bitmap将其转换为要存储的图像。但我不知道如何将该位图转换为图像因为在运行函数中,在开始时看到我需要mImage哪个是我必须存储的图像 @Override        public void run() {            ByteBuffer buffer = mImage.getPlanes()[0].getBuffer();            byte[] bytes = new byte[buffer.remaining()];            buffer.get(bytes);            FileOutputStream output = null;            try {                output = new FileOutputStream(mFile);                output.write(bytes);            } catch (IOException e) {                e.printStackTrace();            } finally {                mImage.close();                if (null != output) {                    try {                        output.close();                    } catch (IOException e) {                        e.printStackTrace();                    }                }            }        }
查看完整描述

2 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

yu can use:-


    private void save(){ 

    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss", Locale.ENGLISH);

    filename = sdf.format(new Date());


    try {

        String path = getApplicationContext().getFilesDir().getPath();

        OutputStream fOut = null;

        File file = new File(path, "MYFile"//your file name);

        if (!file.exists()) {

            file.mkdirs();

        }


        File file2 = new File(file, filename + ".png");

        fOut = new FileOutputStream(file2);



        //your bitmap

        original_with_water_mark.compress(Bitmap.CompressFormat.PNG, 100, fOut);

        fOut.flush();

        fOut.close();

    }

}


查看完整回答
反对 回复 2023-10-13
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

您可以将其以任何图像格式保存在本地存储中。


private void storeImage(Bitmap image) {

File pictureFile = getOutputMediaFile();

if (pictureFile == null) {

    Log.d(TAG,

            "Error while creating media file, Please ask for storage permission");

    return;

try {

    FileOutputStream fos = new FileOutputStream(pictureFile);

    image.compress(Bitmap.CompressFormat.PNG, 90, fos);

    fos.close();

} catch (FileNotFoundException e) {

    Log.d(TAG, "File not found: " + e.getMessage());

} catch (IOException e) {

    Log.d(TAG, "Error accessing file: " + e.getMessage());

}  

}


private  File getOutputMediaFile(){


File mediaStorageDir = new File(Environment.getExternalStorageDirectory()

        + "/Android/data/"

        + getApplicationContext().getPackageName()

        + "/Files"); 



if (! mediaStorageDir.exists()){

    if (! mediaStorageDir.mkdirs()){

        return null;

    }

}  

String timeStamp = new SimpleDateFormat("ddMMyyyy_HHmm").format(new Date());

File mediaFile;

    String mImageName="MI_"+ timeStamp +".jpg";

    mediaFile = new File(mediaStorageDir.getPath() + File.separator + mImageName);  

return mediaFile;

}


查看完整回答
反对 回复 2023-10-13
  • 2 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号