`
daichangfu
  • 浏览: 264270 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java上传头像时进行等比缩放

    博客分类:
  • java
阅读更多
以下为详细代码
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获取视频文件中的帧图片并等比缩放

    通过使用Java语言和javacv库,我们可以快速获取视频文件中的帧图片,并对其进行等比缩放,以满足不同的应用需求。 知识点一:视频文件中的帧图片获取 * 视频文件中的帧图片获取是指从视频文件中抽取出每一帧图片的...

    JQuery实现等比缩放图片插件

    本文将详细介绍如何使用JQuery实现等比缩放图片的插件,并结合提供的`autoImg`文件进行解析。 首先,我们要理解等比缩放的基本原理。等比缩放是指保持图片的长宽比不变,根据指定的容器大小来调整图片的尺寸。在CSS...

    PC、移动端自适应等比缩放布局方案

    ### PC、移动端自适应等比缩放布局方案 随着互联网技术的发展与用户需求的变化,前端开发中的布局方式也在不断地演变。从最开始的静态布局到流式布局、自适应布局、响应式布局以及弹性布局,每种布局都有其独特的...

    JS图片等比缩放

    "JS图片等比缩放"是一种常见的技术,用于确保图片在不同尺寸的容器中显示时保持其原始比例,避免图像失真或变形。这种技术广泛应用于产品图和缩略图的显示,尤其是在用户需要查看多种尺寸图片的场景下,如电商网站的...

    图片等比缩放展示

    等比缩放意味着图片的宽度和高度按相同的比例进行调整,这样可以保持图像的原始形状不变。在CSS(层叠样式表)中,我们可以使用`max-width`和`max-height`属性来限制图片的最大尺寸,同时保持比例。例如: ```css ...

    php+h5+canvas+jcrop 实现网页上传图片并对原图等比缩放后进行裁剪

    实现过程:在HTML中对图片进行上传,在图片文件还未上传至服务器仍停留在form表单时,对该文件进行处理,在此过程中先获取原图的64位base编码,然后利用canvas对原图进行等比缩放,将缩放之后的图片生成新的64位base...

    Qt点击等比缩放源码

    在Qt框架中,等比缩放是常见的图形用户界面(GUI)操作,尤其在处理图像或者自定义控件时显得尤为重要。等比缩放保证了对象的比例不会因为缩放而失真,保持原有的形状不变。以下是对“Qt点击等比缩放源码”相关知识...

    图片自动等比缩放JS(实用)

    图片自动等比缩放JS(实用) 直接加载调用,不受IE、TT、火狐影响

    Winform无边框移动,修改窗体大小,并且等比缩放

    但是没有边框,窗体就不能移动,并且不能修改大小,经过修改,窗体可以移动,并且能移动大小,但是发现窗体拉到以后分辨率会降低,经过努力,终于把无边框窗体改成可以拖动,改变大小并且可以等比缩放窗体,...

    js等比缩放图片

    等比缩放意味着图片的宽度和高度按相同的比例进行缩放,以保持其原始的形状和比例。在CSS中,我们可以使用`width`和`height`属性配合百分比或`auto`值来实现图片的自适应缩放。然而,JavaScript提供了更多的灵活性,...

    java实现图片缩放

    这是个工具类,可以实现图片的等比缩放,坑根据图片百分比,或者固定尺寸等进行缩放,还可以给图片增加水印,很好用

    java处理图片大小等比例缩放,自定义修改图片大小,截取,水印

    以上就是Java处理图片的一些核心知识点,具体应用时需要结合实际情况进行调整。在压缩包中的"java图片大小转换"文件中,很可能包含了实现这些功能的示例代码和使用说明,可以参考学习以加深理解。在实际开发中,我们...

    c#图片截取,缩放,等比缩放等功能

    有以下三个API:将矩形图片截取成正方形,然后缩放成你要的比例 将矩形图缩放成你要的比例

    图片打水印及图片等比缩放

    5. **批量缩放**:对于大量图片的处理,可以编写脚本进行批量等比缩放,提高工作效率。例如,使用Python遍历文件夹,读取每个文件,进行等比缩放后再保存。 综上所述,图片打水印和等比缩放是图像处理中的两个重要...

    php等比缩放缩略图函数

    自己改进的简单php等比缩放生成缩略图函数

    JS显示图片等比缩放

    图片显示等比缩放 

    android 等比缩小图片demo

    当图片的尺寸超过屏幕宽度时,为了保持用户体验的良好,通常需要对图片进行等比缩放,使其适应屏幕宽度。"android等比缩小图片demo"就是这样一个示例,它展示了如何在Android应用中实现图片的等比缩放功能。 等比...

    php图片等比缩放和添加水印

    里面提供的是php处理图片的两个方法,一个是对图片进行等比缩放,另一个是对图片添加水印。也可以两者结合应用。在相应的web目录下运行代码,就可以在image目录下看到经过等比缩放处理的有“s_”前缀的图片和经过...

Global site tag (gtag.js) - Google Analytics