社区
Java SE
帖子详情
使用java处理图形文件的问题
bluemouse
2003-12-19 10:04:18
请问高手,如何使用java将一个任意大小的图片等比例缩减至至少其中一边等于一固定数值(如100),我曾经用.net实现过,现在程序要用java改写,不知道java中如何实现。
先谢谢了 :)
...全文
125
6
打赏
收藏
使用java处理图形文件的问题
请问高手,如何使用java将一个任意大小的图片等比例缩减至至少其中一边等于一固定数值(如100),我曾经用.net实现过,现在程序要用java改写,不知道java中如何实现。 先谢谢了 :)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wobelisk
2003-12-19
打赏
举报
回复
graphics2D.scale
bluemouse
2003-12-19
打赏
举报
回复
参照网上的例子,自己解决了,实现见下 :
有同样需要的朋友可以参考调用 :)
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.awt.image.AffineTransformOp;
import javax.imageio.ImageIO;
import java.awt.geom.AffineTransform;
public class imgTest
{
public static void main(String args[]) throws Exception
{
CreateThumbnail();
System.in.read();
}
public static boolean CreateThumbnail() throws Exception
{
String tofile = "d:\\b";
String imgfile = "d:\\a.jpg";
// ext是图片的格式 gif JPG 或png
String ext="";
double Ratio=0.0;
File F = new File(imgfile);
if (!F.isFile())
throw new Exception(F+" is not image file error in CreateThumbnail!");
// 首先判断上传的图片是gif还是JPG ImageIO只能将gif转换为png
if (isJpg(imgfile)){
ext="jpg";
}else{
ext="png";
}
File ThF = new File(tofile+"."+ext);
BufferedImage Bi = ImageIO.read(F);
// 假设图片宽 高 最大为120 120
Image Itemp = Bi.getScaledInstance (120,120,Image.SCALE_SMOOTH);
if ((Bi.getHeight()>100) || (Bi.getWidth()>100)){
if (Bi.getHeight()>Bi.getWidth())
Ratio = 100.0/Bi.getHeight();
else
Ratio = 100.0/Bi.getWidth();
}
AffineTransformOp op = new AffineTransformOp(AffineTransform.getScaleInstance(Ratio, Ratio), null);
Itemp = op.filter(Bi, null);
try {
ImageIO.write((BufferedImage)Itemp, ext, ThF);
}catch (Exception ex) {
throw new Exception(" ImageIo.write error in CreatThum.: "+ex.getMessage());
}
return (true);
}
/**
* @param imgfile
* @return
*/
private static boolean isJpg(String _s)
{
String _ext;
_ext=_s.substring(_s.indexOf(".")+1,_s.length()).toLowerCase();
if (_ext.equals("jpg"))
{
return true;
}
return false;
}
}
cql0007
2003-12-19
打赏
举报
回复
这些计算应该要你自己去计算得出一个公式的吧,没必要要用到什么特殊的具体的类吧.
JAVA里好象没有这样的类.
其实这和别的语言实现这个功能是一样的啊,首先把图的尺寸算好,然后画出来就行了.
画图的方法:
g.drawImage(image,x,y,width,height,this)
image为该图,x,y为该图开始绘画的起始坐标,width和height为画出该图的宽和高(你的大小控制就在这里了)
bluemouse
2003-12-19
打赏
举报
回复
up一下
bluemouse
2003-12-19
打赏
举报
回复
算比例这个我明白,我想知道具体应该用到java的哪个类?能否说一下思路呢?
cql0007
2003-12-19
打赏
举报
回复
一缩放后其中一边就变成100这样的?
例如图片本来是宽500,高400的.
如果是把500的边变成100,算出它的缩放比例,scaleX=500/100,则高为400/scaleX就是了.
java
源码包---
java
源码 大量 实例
Java
波浪文字,一个利用
Java
处理
字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java
Swing图形界面开发与案例详解和实例代码
Java
Swing是
Java
Standard Edition(
Java
SE)的一部分,用于构建桌面应用程序的图形用户界面(GUI)。它提供了丰富的组件库,使得开发者能够创建出功能强大的、具有吸引力的用户界面。本资料包"
Java
Swing图形界面...
java
源码包2
Java
波浪文字,一个利用
Java
处理
字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
JAVA
_API1.6文档(中文)
java
.sql 提供
使用
Java
TM 编程语言访问并
处理
存储在数据源(通常是一个关系数据库)中的数据的 API。
java
.text 提供以与自然语言无关的方式来
处理
文本、日期、数字和消息的类和接口。
java
.text.spi
java
.text ...
Java
API文档 中文网页版
3. `
java
.io`:提供输入/输出流
处理
,用于文件读写、网络通信等。 4. `
java
.net`:
处理
网络编程相关的类,如Socket、ServerSocket、URL等。 5. `
java
x.swing`:包含用于创建图形用户界面的组件,如按钮、文本框、...
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章