java窗口不可缩放,将图片缩放到适合窗口大小_Java

news/2025/2/26 4:53:52

使用Map传出两个最大值和最小值

参数中 int conWidth,int conHeight 分别是存放图片窗口的长和宽源码:/**

* scaleImg(); 图像缩放方法,将图片缩放到适合控件的大小

* ImageIcon image为显示的图片

* int conWidth,int conHeight 分别是存放图片窗口的的长和宽

*/

public static Map scaleImage(ImageIcon image, double conWidth, double conHeight) {

Map imgWidthAndHeight = new HashMap();

//默认的边框间距

final double SMALL_SCALE = 0.95;

double imgWidth = image.getIconWidth();

double imgHeight = image.getIconHeight();

//原图的宽长比

double imgRatio = imgWidth/imgHeight;

//最终输出宽和长

double reImgWidth = 0;

double reImgHeight = 0;

//若原图的宽小于控件宽

if(imgWidth < conWidth){

if(imgHeight < conHeight){

reImgWidth = conWidth*SMALL_SCALE;

reImgHeight = reImgWidth/imgRatio;

}

else {

reImgHeight = conHeight*SMALL_SCALE;

reImgWidth = reImgHeight*imgRatio;

}

}

//若原图的宽大于控件宽

else {

if(imgHeight < conHeight){

reImgWidth = conWidth*SMALL_SCALE;

reImgHeight = reImgWidth/imgRatio;

}

//若原图的长宽同时大于控件的长宽,最复杂的情况

else {

//控件的长比宽大

double conRatio = conWidth/conHeight;

if (imgRatio < conRatio){

reImgHeight = conHeight*SMALL_SCALE;

reImgWidth = reImgHeight*imgRatio;

}

else {

reImgWidth = conWidth*SMALL_SCALE;

reImgHeight = reImgWidth/imgRatio;

}

}

}

imgWidthAndHeight.put("width", (int) reImgWidth);

imgWidthAndHeight.put("height", (int) reImgHeight);

return imgWidthAndHeight;

}

使用方法://图片等比缩放函数

Map imgWidthAndHeight = ImageProcess.scaleImage(image,IMG_WIDTH,IMG_HEIGHT);

scaleWidth = imgWidthAndHeight.get("width");

scaleHeight= imgWidthAndHeight.get("height");


http://www.niftyadmin.cn/n/834148.html

相关文章

技术面试老是有劲使不出,该怎么办?

又到了一年金三银四&#xff0c;回想到很多年前我刚参加工作时的面试经历&#xff0c;那时都是呆呆地等着面试官问问题&#xff0c;被问到一些自己并不熟悉的问题时要不就是思考半天也切不中要点&#xff0c;要不就只能无奈地回答并不清楚了。其实不管是经验不足的初级开发&…

java组件扫描,Spring 自动组件扫描

通常情况下都是在XML配置文件中手动声明Bean和组件的。不过Spring也可以自动扫描组件实例化Bean&#xff0c;这样就可以避免在XML文件中繁琐的Bean声明。手动声明Bean&#xff1a;这里不再啰嗦&#xff0c;就是简单地在XML文件中配置Bean:自动组件扫描&#xff1a;1、Component…

vdi voi idv区别_云桌面,区别RDS,VDI,IDV,VOI

“RDS, VDI, IDV, VOI&#xff0c;市面上辣么多种云桌面&#xff0c;都把我搞糊涂了。”

php exec git,php 通过exec 创建git分支失败

今天给我们自己的发布系统增加一个新建分支的功能&#xff0c;操作比较简单&#xff0c;但是使用php执行shell命令的时候总是无法push分支到远程&#xff0c;但是登陆服务器执行却是可以的新建分支命令如下git fetch --allgit checkout -b pmt_20160624_v10.7.4 origin/master …

windows包管理工具:scoop 安装,常用的配置及命令

2019独角兽企业重金招聘Python工程师标准>>> scoop 安装&#xff0c;常用的配置及命令 scoop介绍及安装参考Windows下的包管理工具scoop 源码文档 scoop介绍 scoop是windows下的包管理工具&#xff0c;类似与linux下的yum和python的pip。 scoop可以在windows下方便的…

axis2java包,WebService实现包--AXIS2学习笔记二

客户端的调用Web services提供的服务多种多样&#xff0c;有的可以马上获得结果&#xff0c;有的要消耗很长的时间。所以&#xff0c;如果我们需要多种调用方式来对付不同的情况。大多数的Web services都提供阻塞(Blocking)和非阻塞(Non-Blocking)两种APIs.这两个概念以前应该学…

实现简单的正则表达式引擎

回想起第一次看到正则表达式的时候&#xff0c;眼睛里大概都是 $7^(0^]W-\^*d&#xff0c;心里我是拒绝的。不过在后面的日常工作里&#xff0c;越来越多地开始使用到正则表达式&#xff0c;正则表达式也逐渐成为一个很常用的工具。 要掌握一种工具除了了解它的用法&#xff0c…

java判断url中参数为空,java – 如何确保url中没有任何参数?

跟进由于新的要求必须在JSP中完成,即使下面原始答案中列出的Spring处理程序代码可以添加具有相关信息的Model属性,下面是如何执行此操作.类似的两种方式如下&#xff1a;原始答案你标记了spring-mvc,这意味着你有这样的东西(如果你发布它会很好)&#xff1a;Controllerpublic c…