ImageIO(图像处理)
1.通过ImageIO的read和writer,对图像文件进行处理。
BufferedImage buffImage = ImageIO.read(file);
// 将图像输出到Servlet输出流中。
ImageIO.write(buffImage, "jpg", response.getOutputStream());
2. 使用byteArray保存request获取的流数据
InputStream is = null;
byte[] byteArray = null;
ByteArrayOutputStream os = null;
try{
is = super.getRemoteReqStream(url);
byte[] temp = new byte[1024];
os = new ByteArrayOutputStream();
int iLength = 0;
while((iLength = is.read(temp, 0, 1024)) != -1){
os.write(temp, 0, iLength);
}
is.close();
byteArray = os.toByteArray();
ByteArrayOutputStream
3.FileUtils可对文件进行各种操作。
4.FileNameUtils可对文件名进行各种操作。
5. 通过Base64对image流文件转化(这里Base64使用的是Apache的Base64)
/**
* 通过Base64对图像数组进行转化为字符串
* @param byteArray
* @return
*/
@SuppressWarnings("static-access")
public static String getImageStrByBase64(byte[] byteArray){
String strImage = "";
// 空值判断
if(null == byteArray || byteArray.length == 0){
return strImage;
}
Base64 base64 = new Base64();
strImage = base64.encodeBase64String(byteArray);
return strImage;
} /**
* 通过Base64对图像数组进行转化为字符串
* @param byteArray
* @return
*/
@SuppressWarnings("static-access")
public static byte[] getImageByteByBase64(String strImage){
byte[] byteImg = null;
// 空值判断
if(StringUtils.isEmpty(strImage)){
return byteImg;
}
Base64 base64 = new Base64();
byteImg = base64.decodeBase64(strImage);
return byteImg;
}
Base64
6.canvas
canvas.toDataURL("image/jpeg", 0.8); // (image/png)
7.<img>
1. 流形式:<img src="/image/srcInputStream" />
2. 文件路径: <img src="/image/default.jpg" /> 当web运行报出找不到图片但图片确实存在时,因为Tomcat服务器的访问权限设置,使得无法访问本项目之外的文件。需要配置Server.xml
添加路径 :
<Context crossContext="true" docBase="D:\app\hrcloud\elearning\file\video" path="/fileSource" reloadable="true">
</Context>
3. base64展示:
<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJ"/>
4. 因error方法在jquery3版本已经去掉,因此
$("img").attr("onerror", "this.src='***********************************'");
9.对图像的缩放:
BufferedImage buffImage = ImageIO.read(new ByteArrayInputStream(byteImg));
int width = buffImage.getWidth();
int height = buffImage.getHeight();
int scaledH = (int)((float)height/(float)width*scaleWidth);
Image image = buffImage.getScaledInstance(scaleWidth, scaledH, buffImage.SCALE_REPLICATE);
BufferedImage bi = new BufferedImage(scaleWidth, scaledH, BufferedImage.TYPE_INT_RGB);
bi.getGraphics().drawImage(image, 0, 0, null);
ImageIO.write(bi, "jpg", file);
scaleImage
ImageIO(图像处理)的更多相关文章
- java处理图片--图片的缩放,旋转和马赛克化
这是我自己结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化.(转载请注明出处:http://blog.csdn.net/u012116457) 不多说,上代码: packag ...
- Atitit 图像处理底色变红的解决
Atitit 图像处理底色变红的解决 1.1. 原因 ImageIO bug ,alpha通道应该在保存jpg的时候排除1 1.2. 解决,自己移除alpha通道即可1 2. Image sav ...
- Java数字图像处理基础 - 必读
写了很多篇关于图像处理的文章,没有一篇介绍Java 2D的图像处理API,文章讨论和提及的 API都是基于JDK6的,首先来看Java中如何组织一个图像对象BufferedImage的,如图: 一个B ...
- 图像处理JPEGCodec类错误问题 毕业设计遇到的问题
图像处理JPEGCodec类已经从Jdk1.7移除 2014-06-16 20:01:26 分类: 架构设计与优化 著名测试工具jira在使用图像处理JPEGCodec类会报告以下信息: 我是这样用 ...
- Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本
Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本 1. 清理图片压缩图片尺寸 1 2. 所以要使用ImageWriter 1 3. Thumbnails质量压缩builder.o ...
- atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本
atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本 1. 去除边框思路原理 1 2. Thumbnailator 是一个用来生成图像缩略图.裁切. ...
- 数字图像处理(一)之灰度转换和卷积python实现
使用Python实现数字图像处理中如下功能: 彩色图像转成灰度图像 实现图像的相关&卷积操作 实现图像的高斯核卷积 使用的库和python版本如下: imageio:2.9.0 用于读取磁盘中 ...
- Java 图像处理(一)
曾几何时,Java图像处理已经被认为是太过鸡肋,就连Java的创始公司,在java图像处理方面也是浅尝辄止,可能相比较C++,Java在这方面的处理,确实差强人意. 不过Java类库中有一个叫JAI的 ...
- Java 从零开始实现一个画图板、以及图像处理功能,代码可复现
Java 从零开始实现一个画图板.以及图像处理功能,代码可复现 这是一个学习分享博客,带你从零开始实现一个画图板.图像处理的小项目,为了降低阅读难度,本博客将画图板的一步步迭代优化过程展示给读者,篇幅 ...
随机推荐
- stardog graphql 简单操作
预备环境: 下载stardog 软件包 graphql 查询地址 创建一个简单数据库 ./stardog-admin db create -nstarwars graphql 查询方式 http 地址 ...
- Microsoft OWIN
About OWIN defines a standard interface between .NET web servers and web applications. The goal of t ...
- PHP独立环境搭建细节
一.安装前准备: 准备安装软件此处以以下软件为例: Appache:httpd-2.2.21-win32-x86-openssl-0.9.8r.msi MySQL: mysql-5.5.21-win ...
- kettle--window开发环境和linux运行环境的迁移
首先要做的是将kettle在linux下搭建好. 一.搭建linux的kettle环境 1.1解压 (my_python_env)[root@hadoop26 ~]# .zip -d /usr/loc ...
- RequireJS 学习
几个学习点: 配置模块路径 定义模块 配置不支持 AMD jsonp 服务 text 插件 css 插件
- vue 回车自动登录
原理: 在密码输入框加入事件:@keyup.enter.native 登录button加入事件:@click 代码: pug 语法: el-form(ref="loginForm" ...
- jp@gc - Stepping Thread Group 字段说明
1. 安装好插件 参考文档“扩展Jmeter插件获取更多监听器” 2. 添加线程组 右键测试计划->添加->Threads(Users)->jp@gc - Stepping ...
- golang 多个routine之间的同步
本文以一个例子的方式介绍channel在同步中的使用. 下面的例子中,主task首先阻塞,直到两个task完成后,再继续执行. package main import ( "log" ...
- Spring MVC 3.0 深入及对注解的详细讲解[转载]
http://blog.csdn.net/jzhf2012/article/details/8463783 核心原理 1. 用户发送请求给服务器.url:user.do 2. ...
- 在C#客户端用HTTP上传文件到Java服务器
在C#客户端用HTTP上传文件到Java服务器 来源:http://www.cnblogs.com/AndyDai/p/5135294.html 最近在做C / S 开发,需要在C#客户端上传文件到 ...