图片压缩方法:
public static byte[] compressImg(File imgFile,int width,int height){
if(imgFile.exists()){
byte[] buffer=null;
try{
Image bi=ImageIO.read(imgFile);
//BufferedImage tmpimg=ImageIO.read(imgFile);
//bi.getWidth(null);
ImageIcon icon=new ImageIcon(bi);
if((icon.getIconHeight()*icon.getIconWidth())>width*height){
int w=width;
int h=height;
int w1=icon.getIconWidth();
int h1=icon.getIconHeight();
//等比例缩放
if(w1/w>h1/h){
height=h1*w/w1;
}else{
width=w1*h/h1;
}
bi= bi.getScaledInstance(width,height,Image.SCALE_DEFAULT);
BufferedImage mBufferedImage = new BufferedImage(width,height ,BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = mBufferedImage.createGraphics();
g2.drawImage(bi, 0, 0,width, height, Color.white,null);
g2.dispose();
ImageIO.write(mBufferedImage,"jpg",imgFile);
}
//File outFile = null;
//BufferedImage tmpimg=(BufferedImage) bi;
// ImageIO.write(tmpimg, "jpg", imgFile);
buffer=new byte[(int) imgFile.length()];
InputStream is = new FileInputStream(imgFile);
is.read(buffer);
}catch(Exception e){
e.printStackTrace();
}
return buffer;
}else{
return null;
}
}
BASE64加密:
BASE64Encoder base64=new BASE64Encoder();
InputStream is=图片文件流,可以通过数据库读取;
if(is!=null){
byte imgdata[] = Utils.compressImg(is, 120, 150);
// byte imgdata1[]=get.switchInputStream(is);
String img=base64.encode(imgdata);
result.put("IMG", img);
}else{
result.put("IMG", null);
}
页面处理:
jsp1:
<img src="img.jsp?imgdata=<%=bo.getStringField("IMG")%>" width="120" height="150" border="0" style="border:1px solid #000000">
img.jsp代码:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.io.*,sun.misc.BASE64Decoder,java.awt.image.*,cn.sz.iaspec.ddd.web.BaseValueObject,java.util.*,com.sun.image.codec.jpeg.JPEGCodec,com.sun.image.codec.jpeg.JPEGImageEncoder"%>
<%
String strdata=(String)request.getParameter("imgdata");
strdata=strdata.replaceAll(" ","+");//关键的地方,用get的方法传参会使"+"变成" ",所以需要进行替换
BASE64Decoder base=new BASE64Decoder();
byte img[]=base.decodeBuffer(strdata);
InputStream in = new ByteArrayInputStream(img);
BufferedImage image = javax.imageio.ImageIO.read(in);
out.clear();
out = pageContext.pushBody();
ServletOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image);
sos.close();
%>
分享到:
相关推荐
JSP severlet 动态 base64 编码 图片 显示处理
本程序使用c#编写,可对jpg/png/bmp等格式图片进行灰度化处理,还可将图片转换为base64字符串。
Base64编码与图片互转
uniapp 生成海报图片base64转换 (微信头像贴在海报上需要base64转换)import { pathToBase64, base64ToPath } from "路径" base64ToPath(res.data.data.poster) .then(path => {}) .catch(error => { ...
下面就来演示一下,C#语言配合js,如何实现图片的base64格式上传与解析保存。 首先看一下前台是如何将文件读取到的,请先看如下js代码: var DataforUp = ; var reader = new FileReader(); //声明文件读取对象 ...
代码实现的功能:本地图片 --> 输入流 --> byte[] --> Base64转为String --> Base64 将这个String 转为byte[] --> Bitmap --> 显示到ImageView ===注释详细!原创哦
微信开放平台扫码登陆解析处理工具,将frame数据处理为图片或Base64图片数据返回客户端进行扫码。解决Chrome70中open.weixin.qq.com腾讯SSL证书不被信任的问题,解决Chrome68中frame跨域被拦截的问题。
通过执行该工具,批量将图片转成base64的js文件,适合配合微信小程序图标使用!
C++写的图片编码和解码,Demo简单易懂,代码可以复用。很好的解决问题
vue-cli3.0图片打包,小于10k的图片没有自动转base64问题处理
易语言新BASE64编码转换模块源码例程程序使用字节集数据内部字节的左移位与,实现BASE64编码的快速转换。本易语言模块源码是易语言论坛用户近在眼前编写的。资源作者:。易语言学习网。资源下载:。
该代码实现了node.js 配置服务器,网页上传压缩图片、显示base64 上传接受base64图片格式,该代码来源于博客:https://blog.csdn.net/zhangpengzp/article/details/86629097
工具包可将图片文件转化为字节数组字符串,并对其进行Base64编码处理;并可对字节数组字符串进行Base64解码并生成图片。
JS前端上传图片、压缩、并且处理旋转问题,生成base64数据
nvo_base64在pb8中导出的文件,需要有项目将此文件导入。 函数为: public function string base64encode (blob blobbuf) public function blob base64decode (string strbuf, ref character lc_return[]) //2013.11...
提供一种Base64编码,并输出UTF-8格式... 免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。
该工具类支持将图片转换为base64,或者将base64码转换为图片,并且附带图片灰化处理,简单容易理解。
上传图片压缩并且转为base64并且上传阿里云(对ios相机拍照旋转90度处理)
网上都是针对文件图片的Base64处理, 补充这个工具处理文本,字符串。 编码为UTF8。
主要介绍了Java处理图片实现base64编码转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下