社区
Java SE
帖子详情
使用java处理图形文件的问题
bluemouse
2003-12-19 10:04:18
请问高手,如何使用java将一个任意大小的图片等比例缩减至至少其中一边等于一固定数值(如100),我曾经用.net实现过,现在程序要用java改写,不知道java中如何实现。
先谢谢了 :)
...全文
188
6
打赏
收藏
使用java处理图形文件的问题
请问高手,如何使用java将一个任意大小的图片等比例缩减至至少其中一边等于一固定数值(如100),我曾经用.net实现过,现在程序要用java改写,不知道java中如何实现。 先谢谢了 :)
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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
AWT
处理
位图
本文介绍了如何
使用
Java
中的ImageIO工具类读取和写入各种
图形文件
格式,包括JPG、PNG、GIF等,并通过代码示例展示了如何实现图形缓冲和手绘功能。
Java
对
图形文件
的解析(包括普通图片文件、验证码、统计图、条形码和二维码)
本文介绍
Java
中
处理
图形图像的方法,涵盖普通图片、验证码、统计图表、条形码和二维码的生成与解析。具体包括
使用
Java
标准库和第三方库如jFreeChart、ZXing实现各类功能。
Java
图形编程小例子大全
本文聚焦
Java
图形编程,详细解析了AWT、Swing、
Java
2D API、
Java
3D和
Java
FX等相关知识点。探讨了
图形文件
读写、渲染优化、事件
处理
等关键概念,还给出各部分代码示例,展示其在
Java
编程中的实际应用,对
Java
开发者有重要参考价值。
Android Drawable 目录下的 XML
图形文件
常见
问题
:资源加载失败与图形渲染异常的解决方案
本文详细介绍了Android Drawable目录下XML
图形文件
常见的资源加载失败和图形渲染异常
问题
,并提供了相应的解决方案。包括文件路径检查、XML语法验证、资源引用方式、API兼容性
处理
等。针对矢量图形变形、渐变渲染异常及图层叠加
问题
也给出了具体修复方法。同时分享了调试技巧与最佳实践,帮助开发者提高图形资源管理效率。
SMTH
Java
FAQ (4) 2D作图以及文字
处理
本文围绕
Java
2D图形
处理
展开,介绍了双缓冲技术的
使用
、字符宽高获取、大
图形文件
加载显示、非中文平台汉字显示及字体安装等内容,还提及文字背景色设置、键盘输入
处理
、特种文字效果实现等常见
问题
的解决办法。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章