首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
Web开发
> 详细
根据图片URL裁切并生成缩略图
时间:
2015-03-22 00:29:06
阅读:
140
评论:
0
收藏:
0
[点我收藏+]
标签:
package jtest;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.CropImageFilter;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageFilter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
/**
* @author anquan
* @desc: 根据图片URL裁切并生成缩略图
* @date 2015-3-21 下午7:16:37
*/
public class CopyOfImgTest {
/**
* 根据图片URL裁切并生成缩略图
* @param imgUrl 上传的图片的URL
* @param destDir 存放目录
* @param width 图片宽
* @param height 图片高
* @throws IOException
*/
public void resizeImage(String imgUrl, String destDir, Integer width, Integer height) throws IOException {
HttpURLConnection httpUrl = null;
InputStream fis = null;
FileOutputStream fos = null;
URL url = null;
try {
url = new URL(imgUrl);
httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.connect();
fis = httpUrl.getInputStream();
BufferedImage bi = ImageIO.read(fis);
int src_w = bi.getWidth();
int src_h = bi.getHeight();
if (width == null || width <= 0 ) {
width = src_w;
}
if (height == null || height <= 0) {
height = src_h;
}
//(1)图片长大于宽,去掉长的左右两边
//(2)图片长小于宽,去掉宽上面的三分之一,去掉宽下面的三分之二
int top = 0;//左
int left = 0;//左
if(src_w > src_h){
left = (src_w - src_h)/2;
src_w = src_h;
}else{
top = (src_h - src_w)/3;
src_h = src_w;
}
// 裁切图片
ImageFilter cropFilter = new CropImageFilter(left, top, src_w, src_h);
Image cutImage = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(bi.getSource(), cropFilter));
Image image_s = cutImage.getScaledInstance(width, height,Image.SCALE_DEFAULT);//获取缩放后的图片大小
//图片缩小处理
BufferedImage tag_s = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g_s = tag_s.getGraphics();
g_s.drawImage(image_s, 0, 0, null); // 绘制缩小后的图
g_s.dispose();
// 输出为文件
fos = new FileOutputStream(destDir);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);
encoder.encode(tag_s);
} catch (Exception e) {
e.printStackTrace();
}finally{
fos.flush();
fis.close();
fos.close();
}
}
public static void main(String[] args) {
CopyOfImgTest dw = new CopyOfImgTest();
String destUrl1 = "http://localhost:8080/wedding/resources/upload/ushop/1//album//20150321230218658.jpg";
String destUrl2 = "http://localhost:8080/wedding/resources/upload/ushop/1//album//20150315002308968.jpg";
try {
dw.resizeImage(destUrl1, "f://b1.gif", 300, 300);
dw.resizeImage(destUrl2, "f://b2.gif", 300, 300);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
根据图片URL裁切并生成缩略图
标签:
原文地址:http://blog.csdn.net/pa5201314/article/details/44525329
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
36.VUE — 认识 Webpack 和 安装
2021-07-28
【PHP】上传图片翻转问题
2021-07-28
php对数字进行万。亿的转化
2021-07-28
五个 .NET 性能小贴士
2021-07-28
Three.js中显示坐标轴、平面、球体、四方体
2021-07-28
.net 5+ 知新:【1】 .Net 5 基本概念和开发环境搭建
2021-07-27
1.html,css
2021-07-27
基于Docker搭建 Php-fpm + Nginx 环境
2021-07-27
nginx + http + svn
2021-07-27
kubernets kube-proxy的代理 iptables和ipvs
2021-07-26
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!