以下为详细代码
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import javax.imageio.ImageIO;
public class UploadHead {
/**
* @param file 文件流
* @param path 文件存放路径
* @param userId 上传用户的Id
* @return 新文件名
* @throws Exception
*/
public static String uploadHead(File file, String path, int userId) throws Exception {
String nowTime = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());//当前时间
Random r = new Random();
int x = r.nextInt(999999); //生成一个随机数
String newFileName = userId+"-"+x+"-"+nowTime+".jpg";//得到文件的新名字
FileInputStream is = new FileInputStream(file);
BufferedImage sourceImg = javax.imageio.ImageIO.read(is);
int width = sourceImg.getWidth(); //原文件宽度
int height = sourceImg.getHeight(); //原文件高度
if(width>200||height>200){ //等比缩放为200*200的图片,如果宽和高有一个大于200的就进行截取
DecimalFormat df=new DecimalFormat("0.000");
double bili = 0.000; //计算等比
if(width > height){ //根据像素大的一方进行等比缩放
bili = Double.parseDouble(df.format(width / 200.0));
}else{
bili = Double.parseDouble(df.format(height / 200.0));
}
width = (int) (width / bili);
height = (int) (height / bili);
}
BufferedImage src = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //根据计算好的宽高新建画布
src.getGraphics().drawImage(sourceImg.getScaledInstance(width, height,Image.SCALE_SMOOTH), 0, 0, null);
ImageIO.write(src, "JPEG", new File(path,newFileName)); //输出图像
is.close();
return newFileName ;
}
}
有什么不妥的地方,欢迎留言纠错!
分享到:
相关推荐
本文将详细讨论“上传图片 - 等比缩放”的技术实现,包括如何生成两个不同尺寸的缩略图,一个为100X100像素,另一个为300X300像素。 首先,我们需要理解什么是等比缩放。等比缩放是指在调整图像大小时保持其原始...
2. 图片等比缩放:在XnView中,用户可以轻松地对图片进行等比缩放,只需在尺寸设置中保持宽度和高度的比例锁定即可。此外,软件还提供了预览功能,让用户在缩放前查看效果。 除了这些基本功能,XnView还有其他高级...
通过使用Java语言和javacv库,我们可以快速获取视频文件中的帧图片,并对其进行等比缩放,以满足不同的应用需求。 知识点一:视频文件中的帧图片获取 * 视频文件中的帧图片获取是指从视频文件中抽取出每一帧图片的...
本文将详细介绍如何使用JQuery实现等比缩放图片的插件,并结合提供的`autoImg`文件进行解析。 首先,我们要理解等比缩放的基本原理。等比缩放是指保持图片的长宽比不变,根据指定的容器大小来调整图片的尺寸。在CSS...
### PC、移动端自适应等比缩放布局方案 随着互联网技术的发展与用户需求的变化,前端开发中的布局方式也在不断地演变。从最开始的静态布局到流式布局、自适应布局、响应式布局以及弹性布局,每种布局都有其独特的...
"JS图片等比缩放"是一种常见的技术,用于确保图片在不同尺寸的容器中显示时保持其原始比例,避免图像失真或变形。这种技术广泛应用于产品图和缩略图的显示,尤其是在用户需要查看多种尺寸图片的场景下,如电商网站的...
等比缩放意味着图片的宽度和高度按相同的比例进行调整,这样可以保持图像的原始形状不变。在CSS(层叠样式表)中,我们可以使用`max-width`和`max-height`属性来限制图片的最大尺寸,同时保持比例。例如: ```css ...
实现过程:在HTML中对图片进行上传,在图片文件还未上传至服务器仍停留在form表单时,对该文件进行处理,在此过程中先获取原图的64位base编码,然后利用canvas对原图进行等比缩放,将缩放之后的图片生成新的64位base...
在Qt框架中,等比缩放是常见的图形用户界面(GUI)操作,尤其在处理图像或者自定义控件时显得尤为重要。等比缩放保证了对象的比例不会因为缩放而失真,保持原有的形状不变。以下是对“Qt点击等比缩放源码”相关知识...
图片自动等比缩放JS(实用) 直接加载调用,不受IE、TT、火狐影响
但是没有边框,窗体就不能移动,并且不能修改大小,经过修改,窗体可以移动,并且能移动大小,但是发现窗体拉到以后分辨率会降低,经过努力,终于把无边框窗体改成可以拖动,改变大小并且可以等比缩放窗体,...
等比缩放意味着图片的宽度和高度按相同的比例进行缩放,以保持其原始的形状和比例。在CSS中,我们可以使用`width`和`height`属性配合百分比或`auto`值来实现图片的自适应缩放。然而,JavaScript提供了更多的灵活性,...
这是个工具类,可以实现图片的等比缩放,坑根据图片百分比,或者固定尺寸等进行缩放,还可以给图片增加水印,很好用
以上就是Java处理图片的一些核心知识点,具体应用时需要结合实际情况进行调整。在压缩包中的"java图片大小转换"文件中,很可能包含了实现这些功能的示例代码和使用说明,可以参考学习以加深理解。在实际开发中,我们...
有以下三个API:将矩形图片截取成正方形,然后缩放成你要的比例 将矩形图缩放成你要的比例
5. **批量缩放**:对于大量图片的处理,可以编写脚本进行批量等比缩放,提高工作效率。例如,使用Python遍历文件夹,读取每个文件,进行等比缩放后再保存。 综上所述,图片打水印和等比缩放是图像处理中的两个重要...
自己改进的简单php等比缩放生成缩略图函数
图片显示等比缩放
当图片的尺寸超过屏幕宽度时,为了保持用户体验的良好,通常需要对图片进行等比缩放,使其适应屏幕宽度。"android等比缩小图片demo"就是这样一个示例,它展示了如何在Android应用中实现图片的等比缩放功能。 等比...
里面提供的是php处理图片的两个方法,一个是对图片进行等比缩放,另一个是对图片添加水印。也可以两者结合应用。在相应的web目录下运行代码,就可以在image目录下看到经过等比缩放处理的有“s_”前缀的图片和经过...