java实现图片的预览_Java实现图片裁剪预览功能
Java实现图片裁剪预览功能
在项目中,我们需要做些类似头像上传,图片裁剪的功能,ok看下面文章!
需要插件:jQuery Jcrop
后端代码:
package org.csg.upload;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
public class Upload {
/**
* @author 小夜的传说
* @param path1 图片原路径
* @param path2 裁剪后存储的路径
* @param x x轴
* @param y y轴
* @param w
* @param h
*/
public static void CutImage(String path1,String path2,int x,int y,int w,int h){
FileInputStream fileInputStream=null;
ImageInputStream iis=null;
try {
//读取图片文件,建立文件输入流
fileInputStream=new FileInputStream(path1);
//创建图片的文件流 迭代器
Iterator it = ImageIO.getImageReadersByFormatName("jpg");
ImageReader reader=it.next();
//获取图片流 建立文图 文件流
iis=ImageIO.createImageInputStream(fileInputStream);
//获取图片默认参数
reader.setInput(iis, true);
ImageReadParam param=reader.getDefaultReadParam();
//定义裁剪区域
Rectangle rect=new Rectangle(x,y,w,h);
param.setSourceRegion(rect);
BufferedImage bi=reader.read(0,param);
ImageIO.write(bi, "jpg", new File(path2));
} catch (Exception e) {
e.printStackTrace();
System.out.println("裁剪失败");
}finally{
try {
if(fileInputStream!=null){
fileInputStream.close();
}
if(iis!=null){
iis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
访问代码:
//图片的相对路径
String imagPath=request.getParameter("imgPath");
String relPath=request.getRealPath("/");//获取图片服务器绝对地址
String newFileName=new Date().getTime()+".jpg";
//实际图片路径
String path1=relPath+imagPath;
//裁剪后存储到服务器的图片路径
String path2=relPath+"/images/"+newFileName;
int x=Integer.parseInt(request.getParameter("x"));
int y=Integer.parseInt(request.getParameter("y"));
int w=Integer.parseInt(request.getParameter("w"));
int h=Integer.parseInt(request.getParameter("h"));
try{
Upload.CutImage(path1, path2, x, y, w, h);
out.print("");
}catch(Exception e){
e.printStackTrace();
out.print("图片裁剪失败");
}
%>
jsp代码:
HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Jsp开发头像裁剪
*{margin: 0;padding: 0;}
.cut{
margin-top: 20px;
}
#preview-pane {
display: block;
position: absolute;
z-index: 2000;
top: 10px;
right: -280px;
padding: 6px;
border: 1px rgba(0,0,0,.4) solid;
background-color: white;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
-webkit-box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);
box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);
}
#preview-pane .preview-container {
width: 250px;
height: 170px;
overflow: hidden;
}
$(function(){
var jcrop_api,
boundx="",
boundy="",
$preview = $('#preview-pane'),
$pcnt = $('#preview-pane .preview-container'),
$pimg = $('#preview-pane .preview-container img'),
xsize = $pcnt.width(),
ysize = $pcnt.height();
$('#cutImage').Jcrop({
onChange:showCoords,//获取选中的值
onSelect:showCoords,//获取拖拽的值
aspectRatio: xsize / ysize
},function(){
var bounds = this.getBounds();
boundx = bounds[0];
boundy = bounds[1];
jcrop_api = this;
$preview.appendTo(jcrop_api.ui.holder);
});
function showCoords(c){
var x=c.x;
var y=c.y;
var w=c.w;
var h=c.h;
$("#x1").val(parseInt(x));
$("#y1").val(parseInt(y));
$("#w").val(parseInt(w));
$("#h").val(parseInt(h));
if (parseInt(c.w) > 0){
var rx = xsize / c.w;
var ry = ysize / c.h;
$pimg.css({
width: Math.round(rx * boundx) + 'px',
height: Math.round(ry * boundy) + 'px',
marginLeft: '-' + Math.round(rx * c.x) + 'px',
marginTop: '-' + Math.round(ry * c.y) + 'px'
});
}
}
});
Java开发QQ头像裁剪系统
x轴:
y轴:
宽度:
高度:
效果图:
java实现图片的预览_Java实现图片裁剪预览功能相关推荐
- Java处理图片后图片变小了_JAVA改变图片大小,该怎么处理
JAVA改变图片大小 我实现了改变图片大小,但是分辨率有很大的影响,求教JAVA中的类或者算法解决这个问题,使之可以改变图片大小,同时不影响图片质量 java 图片 算法 类 分享到: ------解 ...
- java 打印预览_java打印和打印预览机制实例代码
代码如下: import java.awt.basicstroke; import java.awt.borderlayout; import java.awt.color; import java. ...
- java 文件预览_Java实现文件的预览
最近项目需要用到文件的预览功能,就开始在网上收集资料,学习了几种文件预览的方法.我集成到我项目内测试的有以下三种,最后使用的是第三种: 直接使用别人提供的服务 例如:office web 365 使用 ...
- java旋转图片并画出_java实现图片角度旋转并获得图片信息
本文实例为大家分享了java实现图片角度旋转并获得图片信息的具体代码,供大家参考,具体内容如下 public class demo { /** * 调整图片角度 * make by dongxh 20 ...
- java图片转成字符串_JAVA将图片(本地或者网络资源)转为Base64字符串,将base64字符串存储为本地图片...
网络资源代码 import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOExcep ...
- java图片加文字水印_JAVA实现图片的修改,添加文字水印效果
JAVA实现图片的修改,添加文字水印效果,根据文字内容生成图片,下面是具体的代码,以及测试方法: 实现类: package JavaMoImage; import javax.p_w_picpathi ...
- java pdf水印排布问题_java实现图片和pdf添加铺满文字水印
依赖jar包 com.itextpdf itextpdf 5.3.2 com.itextpdf itext-asian 5.2.0 一,图片添加铺满水印 ======================= ...
- java 图片文件 格式转换_Java的图片文件格式转换和线性缩放
Java的图片文件格式转换和线性缩放 来源:68design.net 2007年07月13日 08:31 图片文件格式转换最核心的问题就是要解决各种图片格式的编码和解码,推荐用jimi包,可从 htt ...
- java 上传文件并读取_Java实现图片上传到服务器并把上传的图片读取出来
在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢? 下面说一下我的实现过程(只是个人实现思路,实际网站怎么实现的 ...
- java图片怎么定义属性_Java读写图片XMP元数据XMPMeta(自定义属性信息)
起因 因项目需要,要求在JPG图片中添加自定义属性信息,在网上找了很久,发现大多数是读取ESIF信息,键值信息都是固定死的,不符合需求,后面找到了com.adobe.xmp类库,也没找到关于XMP数据 ...
最新文章
- 外贸网络推广分享让网站文章标题优化效果更好地小技巧!
- 【Groovy】闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )
- 2015年蓝桥杯省赛第5题--九数组分数
- 响应式编程优点 有效_Reactive(响应式)编程
- 转:Linux设备驱动开发(1):内核基础概念
- 解决 favicon.ico 404 (Not Found)
- php列出mysql表格,php列出mysql表所有行和列的方法
- 【英语学习】【WOTD】brummagem 释义/词源/示例
- python模板语言_你应该(或许)没使用过的 3 种 Python 模板语言 | Linux 中国
- Win32程序和控制台应用程序的项目互转设置
- 深度linux磁盘编辑,磁盘管理(分区,格式化,维护,写入,配额)- 磁盘管理 - Deepin深度系统用户手册...
- 火车售票系统html模板,火车售票系统设计
- app 要求字体使用楷体,使用字体包
- java blowfish ecb,来自blowfish / base64的解密消息时出错
- threejs学习笔记:贴图实现木地板效果
- drcom for linux,Ubuntu Linux 6.10下用Dr.COM(drcom-client)接入网络的问题
- SpringBoot安全验证之Referer拦截器
- ecshop小京东首页分类楼层左侧广告修改方法
- 15个Android流行框架
- 计算机高中期末总结作文,期末考试总结作文(精选5篇)