Java里面有没有哪个画图片的函数的参数是double类型的 java2d图片 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 画图片是什么意思? ImageIcon就好了呀package demo;import java.net.MalformedURLException;import java.net.URL;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.SwingUtilities;public class Demo extends JFrame{ private ImageIcon img; public Demo(){ setTitle("demo"); setSize(300,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); try { img = new ImageIcon(new URL("http://avatar.csdn.net/D/A/4/1_tanweijia888.jpg")); add(new JLabel(img)); } catch (MalformedURLException e) { e.printStackTrace(); } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { Demo d = new Demo(); d.setVisible(true); } }); }} 就是有没有一个类似drawImage的函数,但是它的参数是double类型的? 你要话现在这个Rectangle2D rect=new Rectangle2D.Double(x,y,z,k),吗?直接java.awt.Graphics2D.draw(Shape)接口即可。 不是,想用图片做动画,要设置图片的定点位置和宽度高度,那在graphics2D里有没有这样的函数呢?像drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)的话,坐标参数都是int型的,有没有同样的函数但是参数是double的?或者有没有像Rectangle2D那样能定义图片位置和大小函数? 理解了,尝试学会用AffineTransform,所有图形学讲变换(平移,反转,旋转,缩放等)一定会涉及到一个矩阵,这个类就是这个。java.awt.Graphics2D.drawRenderedImage(RenderedImage, AffineTransform)或者java.awt.Graphics2D.drawRenderableImage(RenderableImage, AffineTransform)方法其中drawRenderedImage比较常用,因为BufferedImage就是一个RenderedImage。 AffineTransform参数的含义,是指在当前坐标系基础上,叠加进行其他变化操作。比如你现在的坐标系当前位置在(0,0),如果想从(100,200)作为起点,等比例画你的矩形图片那么就是g2d.drawRenderedImage(img, AffineTransform.getTranslateInstance(100.0, 200.0));如果想以(100,200)为起点,且按照原样50%画图片可以AffineTransform transform = AffineTransform.getTranslateInstance(100,200); //先获得偏移transform.scale(0.5, 0.5); // 在此基础上,长宽均缩小至50%g2d.drawRenderedImage(img, transform);当然,也可以直接对g2d.setTransform,今后所有操作的坐标系统,都将以此为标准。不过,记得set之前,先getTransform老的坐标系统,以备不时之需。 噢好的好的!那这个img文件初始化可以这样子吗?Image icar = getToolkit().getImage("blude_car2.gif");g2.drawRenderedImage( icar , AffineTransform.getTranslateInstance(100.0, 200.0));我试了一下出现异常啊如果不是这样,那应该怎么样初始化呢?谢谢!! 用ImageIO读toolkit读出来的,根本不是BufferedIamge,而且目测你代码编译不通过 File f = new File("blude_car2.gif"); try { Image image = ImageIO.read(f); BufferedImage buffer1 = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB); g2.drawRenderedImage(buffer1, AffineTransform.getTranslateInstance(getSx()[i], getSy()[i])); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }这样子对吗?我试了一下,图片显示不出来啊,是一块黑的。。 BufferedImage image = ImageIO.read(f);确保文件路径对 Myeclipse 无法打开html文件 在线等高手答 这个如何递归处理无限级子类 急呀!问题多多,有谁能帮帮忙看看? applet 中读取的地图,现在要在地图上做超链接??? 求求大家有没有Thinking in Java 3nd Edition的答案?英文的就行 如何用Java实现内存移植? 请教一个关于JButton的问题 到底用那个更有效? 请问哪里有《java实例技术手册》的电子书下载?100分赠送! jbuilder7中怎么做成exe文件?找不到菜单项。 紧急寻找jbuilder的超级高人!!!!!! 命令行给main 函数传参数*的时候,怎么传 listFiles的用法
package demo;import java.net.MalformedURLException;
import java.net.URL;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;public class Demo extends JFrame{
private ImageIcon img;
public Demo(){
setTitle("demo");
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
img = new ImageIcon(new URL("http://avatar.csdn.net/D/A/4/1_tanweijia888.jpg"));
add(new JLabel(img));
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Demo d = new Demo();
d.setVisible(true);
}
});
}
}
drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)的话,坐标参数都是int型的,有没有同样的函数但是参数是double的?或者有没有像Rectangle2D那样能定义图片位置和大小函数?
java.awt.Graphics2D.drawRenderableImage(RenderableImage, AffineTransform)方法其中drawRenderedImage比较常用,因为BufferedImage就是一个RenderedImage。
比如你现在的坐标系当前位置在(0,0),如果想从(100,200)作为起点,等比例画你的矩形图片
那么就是
g2d.drawRenderedImage(img, AffineTransform.getTranslateInstance(100.0, 200.0));如果想以(100,200)为起点,且按照原样50%画图片
可以
AffineTransform transform = AffineTransform.getTranslateInstance(100,200); //先获得偏移
transform.scale(0.5, 0.5); // 在此基础上,长宽均缩小至50%
g2d.drawRenderedImage(img, transform);
当然,也可以直接对g2d.setTransform,今后所有操作的坐标系统,都将以此为标准。不过,记得set之前,先getTransform老的坐标系统,以备不时之需。
Image icar = getToolkit().getImage("blude_car2.gif");
g2.drawRenderedImage( icar , AffineTransform.getTranslateInstance(100.0, 200.0));
我试了一下出现异常啊如果不是这样,那应该怎么样初始化呢?谢谢!!
toolkit读出来的,根本不是BufferedIamge,而且目测你代码编译不通过
try {
Image image = ImageIO.read(f);
BufferedImage buffer1 = new BufferedImage(image.getWidth(null),
image.getHeight(null), BufferedImage.TYPE_INT_RGB);
g2.drawRenderedImage(buffer1, AffineTransform.getTranslateInstance(getSx()[i], getSy()[i]));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这样子对吗?我试了一下,图片显示不出来啊,是一块黑的。。