前端 img标签显示 base64格式的 图片

大多数程序员都遇到一个问题,就是页面显示图片的问题;一般情况下,只要你在数据库或相关的页面上指定图片的路径,基本上程序就会按照你给出的路径将图片呈现到界面上,而你要做的就是修改图片控件的大小;但是还有一种情况就是,数据库里面根本没有存储图的路径而是存储了将图片的转成byte[] 字节,遇到这样的情况,估计有些人就犯难了,比如我……,当然了,我现在已经解决了这个问题,下面就不废话,直接上成果:

string image=Convert.ToBase64String(byte[] str);   //C#    写法 
-----------------------------------------------------------------
* 需要引入 import org.apache.commons.codec.binary.Base64;  这个命名空间
string image=Base64.encodeBase64String(byte[] b);  //java  写法 

这句换就已经将byte[] 转成了图片,如果在不考虑图片类型的情况下,显示成图片现在基本上已经完成了;但有些情况下我们就必须考虑图片的格式问题,所以下面的方法中有获取图片格式的方法:

C#  写法

//需要引入命名空间:
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

 public static string GetImgPostFixByBytes(byte[] bytes)
  {
        Image photo = null;
        using (MemoryStream ms = new MemoryStream(bytes))
        {
             ms.Write(bytes, 0, bytes.Length);
             photo = Image.FromStream(ms, true);
        }

        string postfix = "";
        ImageFormat format = photo.RawFormat;
        if (format.Equals(ImageFormat.Jpeg))
        {
             postfix = "jpeg";
        }
        else if (format.Equals(ImageFormat.Png))
        {
             postfix = "png";
        }
        else if (format.Equals(ImageFormat.Bmp))
        {
             postfix = "bmp";
        }
        else if (format.Equals(ImageFormat.Gif))
        {
             postfix = "gif";
        }
        else if (format.Equals(ImageFormat.Icon))
        {
             postfix = "icon";
        }

        return postfix;
    }
----------------------------------------------------------------

* Java  写法

    //图片转换  byte[]转base64
    public static String byte2Base64StringFun(byte[] b){
        return Base64.encodeBase64String(b);
    }
    //根据字节流获取文件的类型
    public static String bytesToHexString(byte[] src) {
        StringBuilder stringBuilder = new StringBuilder();
        if (src == null || src.length <= 0) {
            return null;
        }
        for (int i = 0; i < src.length; i++) {
            int v = src[i] & 0xFF;
            String hv = Integer.toHexString(v);
            if (hv.length() < 2) {
                stringBuilder.append(0);
            }
            stringBuilder.append(hv);
        }
        return stringBuilder.toString();
    }

至此,这个功能才能算是把相关的数据获取到了,接下来我们只要把相关的元素拼接成下面的这个样子赋给,要显示的字段就大功告成了!

C#  写法

string image="data:image/" + GetImgPostFixByBytes(byte[] str) + ";base64," + Convert.ToBase64String(byte[] str);   
--------------------------------------------------------

Java 写法

string src="data:image/" + bytesToHexString(byte[] str) + ";base64," + byte2Base64StringFun(byte[] str);  

image就是你想要的图片;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值