Java 数据库image型输出图片

有一些程序在sqlserver中存储图片的方式是通过二进制存储导数据库的,那么保存进去之后,怎么把图片显示出来呢?直接上代码,servlet后台代码:byte[]b1=””;//数据库查询出来的二进制InputStreamin=newByteArrayInputStream(b1);response.setContentType(“image/jpg”);Outpu…

大家好,又见面了,我是你们的朋友全栈君。

有一些程序在sql server中存储图片的方式是通过二进制存储导数据库的,那么保存进去之后,怎么把图片显示出来呢?

直接上代码,servlet后台代码:

byte[] b1 = ””;//数据库查询出来的二进制
InputStream in = new ByteArrayInputStream(b1);
response.setContentType("image/jpg");
OutputStream out = response.getOutputStream();
byte[] b2 = new byte[1024];
int j = 0;
while ((j = in.read(b2)) != -1) {
	out.write(b2, 0, j);
}
out.flush();
out.close();
in.close();

因为数据库存储的image类型对应Java的数据类型是byte[]型,所以这边是用byte[]型来接受图片数据,然后在jsp这边:

<img src="/servlet/showImageServlet" style="border-radius:10px;width:100px; height:50px;">

然后在浏览器上就直接显示该图片了:

Java 数据库image型输出图片

还可以将数据库的图片查询出来并保存到相对应的系统文件夹:

byte[] bytes1 = “”//数据库查询出来的二进制;
ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
BufferedImage bi1 = ImageIO.read(bais);
File w2 = new File("c://新建文件夹", "照片名字.jpg");// 可以是jpg,png,gif格式
ImageIO.write(bi1, "jpg", w2);// 不管输出什么格式图片,此处不需改动

当然,如果数据库是多张图片的话,就给个循环把所有图片都输出就可以了:

Java 数据库image型输出图片

以下两个方法是byte2hex()二进制转字符、hex2byte()字符转二进制代码:

public static String byte2hex(byte[] b) // 二进制转字符串
	{
		StringBuffer sb = new StringBuffer();
		String stmp = "";
		for (int n = 0; n < b.length; n++) {

			stmp = Integer.toHexString(b[n] & 0XFF);
			if (stmp.length() == 1) {
				sb.append("0" + stmp);
			} else {
				sb.append(stmp);
			}
		}
		return sb.toString();
	}
	public static byte[] hex2byte(String str) { // 字符串转二进制
		if (str == null)
			return null;
		str = str.trim();
		int len = str.length();
		if (len == 0 || len % 2 == 1)
			return null;
		byte[] b = new byte[len / 2];
		try {
			for (int i = 0; i < str.length(); i += 2) {
				b[i / 2] = (byte) Integer
						.decode("0X" + str.substring(i, i + 2)).intValue();
			}
			return b;
		} catch (Exception e) {
			return null;
		}
	}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129466.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java之数组转集合&集合转数组[通俗易懂]

    Java之数组转集合&集合转数组[通俗易懂]一、数组转换为集合需要注意的是,转换只能转换为List集合。那么为什么不能转换为Set集合呢?原因是:Set不能存放重复元素,所以若转换为Set集合可能出现丢失元素的情况。。。数组转换为集合使用的是数组的工具类Arrays的静态方法asList。查看API文档可知该方法返回由指定数组支持的固定大小的列表。eg:importjava.util.Arrays;importjava.u…

  • Odin Inspector 系列教程 — Type Filter Attribute

    Odin Inspector 系列教程 — Type Filter AttributeTypeFilterAttribute特性:对输入的value进行自定义过滤,只显示需要的类型完整示例代码usingSirenix.OdinInspector;usingSirenix.Utilities;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usin…

  • 0x0000是什么颜色_企业代码类型

    0x0000是什么颜色_企业代码类型转自http://blog.csdn.net/cgwcgw_/article/details/21155229″black”=>array(0x000000),黑色”maroon”=>array(0x800000),栗色”green”=>array(0x008000),绿色”olive”=>array(0x808000),橄榄色”navy”=>array(0x

  • matlab pca分析(二次进化攻略)

    主成分分析主成分分析法(PCA)是一种高效处理多维数据的多元统计分析方法,将主成分分析用于多指标(变量)的综合评价较为普遍。该方法的基本思想是运用较少的变量去解释原始数据中的大部分变异,通过对原始数据相关矩阵内部结构关系的分析和计算,产生一系列互不相关的新变量。根据需要从中选取比原始变量个数少的几个新变量,这些新的变量就是所谓的主成分,它们能够充分解释原始数据的变化。因此,主成分分析法本质上是…

  • idea2021.2.8激活码-激活码分享

    (idea2021.2.8激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html83PVI25FMO-eyJsa…

  • 学会这几个简单的bat代码,轻松在朋友面前装一波13[通俗易懂]

    学会这几个简单的bat代码,轻松在朋友面前装一波13[通俗易懂]这个标题是干什么用的?最近看晚上某些人耍cmd耍的十分开心,还自称为“黑客”,着实比较搞笑.他们那些花里胡哨的东西在外行看来十分nb,但只要略懂一些,就会发现他们的那些十分搞笑和滑稽。今天这里分享几个类似的方法,让你在不懂行的朋友面前秀一波“黑客技术”纯属娱乐,新手教程,大佬勿喷注:本文所有代码,都为.bat格式*1:蹦迪必备颜色转换这个十分简单,先看效果原理,也不复杂,就是不停的变…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号