请问怎么样把一个JPG图片文件显示出来,并在上面画一些线条后再保存新文件? 请问怎么样将一个JPG格式的图片文件显示出来,显示后,再灾上面画些横竖的线条,最后将画了线条的图片再保存成JPG文件。别人再看那个JPG文件时就是有线条的了。也就是说怎么简单编辑图像的问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好像构建了Image后,可以取得它的Graphics,有了Graphics要画线还不容易? 贴个图形缩放的示例:import javax.imageio.ImageIO; import javax.imageio.IIOException; import java.awt.image.BufferedImage; import java.awt.Image; import java.io.File; import java.awt.image.AffineTransformOp; import java.awt.geom.AffineTransform; public class imgTest{ public static void main (String argv[]) { try{ File fi = new File("me.jpg"); //大图文件 File fo = new File("me2.jpg"); //将要转换出的小图文件 int nw = 100; AffineTransform transform = new AffineTransform(); BufferedImage bis = ImageIO.read(fi); int w = bis.getWidth(); int h = bis.getHeight(); double scale = (double)w/h; int nh = (nw*h)/w ; double sx = (double)nw/w; double sy = (double)nh/h; transform.setToScale(sx,sy); System.out.println(w + " " +h); AffineTransformOp ato = new AffineTransformOp(transform,null); BufferedImage bid = new BufferedImage(nw,nh,BufferedImage.TYPE_3BYTE_BGR); ato.filter(bis,bid); ImageIO.write(bid,"jpeg",fo); } catch(Exception e) { e.printStackTrace(); } } } lzmailcn(一年前的新手):我取得了JLabel的Graphics,画线是很容易,关键是画完线后怎么保存?我的JPEG图片是调用JLabel的SetIcon方法显示出来的,后来我画线也成功了,可就是不知道画完后怎么保存。 import javax.imageio.*;import com.sun.image.codec.jpeg.*;...BufferedImage buffer = new BufferedImage(...);// draw whatever you want on buffertry { File file = new File("newImage.jpg"); FileOutputStream out = new FileOutputStream(file); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(buffer); encoder.setJPEGEncodeParam(param); param.setQuality(1.0f,false); encoder.encode(buffer); out.flush(); out.close();} 正则表达式 java控制台的格式化输入问题 大家推荐几本Java的书籍及电子书、视频教程 我想买一本关于java的书,推荐一本吧 帮忙检查并优化一下java代码 一个eclipse的简单问题 天津有哪些好的软件公司? 哪位大侠救命啊,我做的白板在窗口切换后画过的图形就没有了。怎么办? 为什么我的UI程序总是把输入法打开,而且操作后刷新总有问题! 请问什么是JSDK, 它和JDK有什么不同吗? 数据库连接池的概念 Mingw编写程式问题
import javax.imageio.ImageIO;
import javax.imageio.IIOException;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.io.File;
import java.awt.image.AffineTransformOp;
import java.awt.geom.AffineTransform; public class imgTest{
public static void main (String argv[]) {
try{
File fi = new File("me.jpg"); //大图文件
File fo = new File("me2.jpg"); //将要转换出的小图文件
int nw = 100;
AffineTransform transform = new AffineTransform();
BufferedImage bis = ImageIO.read(fi);
int w = bis.getWidth();
int h = bis.getHeight();
double scale = (double)w/h;
int nh = (nw*h)/w ;
double sx = (double)nw/w;
double sy = (double)nh/h;
transform.setToScale(sx,sy);
System.out.println(w + " " +h);
AffineTransformOp ato = new AffineTransformOp(transform,null);
BufferedImage bid = new BufferedImage(nw,nh,BufferedImage.TYPE_3BYTE_BGR);
ato.filter(bis,bid);
ImageIO.write(bid,"jpeg",fo);
} catch(Exception e) {
e.printStackTrace();
}
}
}
import com.sun.image.codec.jpeg.*;...
BufferedImage buffer = new BufferedImage(...);
// draw whatever you want on buffertry {
File file = new File("newImage.jpg");
FileOutputStream out = new FileOutputStream(file);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(buffer);
encoder.setJPEGEncodeParam(param);
param.setQuality(1.0f,false);
encoder.encode(buffer);
out.flush();
out.close();
}