千家信息网

如何利用Bitmap为中介储存图片到数据库中

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章将为大家详细讲解有关如何利用Bitmap为中介储存图片到数据库中,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。利用Bitmap及其相关的工具类即可实现图片的
千家信息网最后更新 2024年11月11日如何利用Bitmap为中介储存图片到数据库中

这篇文章将为大家详细讲解有关如何利用Bitmap为中介储存图片到数据库中,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

利用Bitmap及其相关的工具类即可实现图片的存储以及显示。

主要用到的工具类:

import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.util.Base64;import java.io.ByteArrayOutputStream;/** * Created by cartoon on 2017/12/9. */public class StringAndBitmap {    //图片与String之间的转换,便于将图片存储在数据库中    private Bitmap bitmap;    private String string;    public Bitmap stringToBitmap(String string){        //数据库中的String类型转换成Bitmap        if(string!=null){            byte[] bytes= Base64.decode(string,Base64.DEFAULT);            bitmap= BitmapFactory.decodeByteArray(bytes,0,bytes.length);            return bitmap;        }        else {            return null;        }    }    public String bitmapToString(Bitmap bitmap){        //用户在活动中上传的图片转换成String进行存储        if(bitmap!=null){            ByteArrayOutputStream stream = new ByteArrayOutputStream();            bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);            byte[] bytes = stream.toByteArray();// 转为byte数组            string=Base64.encodeToString(bytes,Base64.DEFAULT);            return string;        }        else{            return "";        }    }}

下面已经获取到数据库中已经存储了的图片的String语句string,只需要在需要显示图片的组件中调用关于显示Bitmap的方法即可。

imageView.setImageBitmap(stringAndBitmap.stringToBitmap(string);//这里的imageView为页面组件绑定的ID,string为从数据库获取到图片的string形态

而存储用户上传的图片则需要这样即可。

bitmap=((BitmapDrawable)imageView.getDrawable()).getBitmap();string=stringAndBitmap.bitmapToString(bitmap);

经过一些数据库的操作,即可以把用户上传的图片存入到数据库中。

因为数据库部分不是我负责的,所以我的建议是数据库中的类型选择BLOB(MySQL),因为已经实现过是可行的。

关于"如何利用Bitmap为中介储存图片到数据库中"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0