java 创建image对象_Java中如何根据图片文件创建Image对象,且将Image对象保存为文件形式...

一.创建与保存

1.根据一个文件路径创建Image对象

Image image = ImageIO.read(new File(filepath));

2.将Image对象保存为文件形式

BufferedImage image = ImageIO.read(new File(filepath));//要想保存这个对象的话你要把image声明为BufferedImage 类型

ImageIO.write(image, "jpg", new File("f:/image/apple.jpg"));

二.在图像界面中显示图像

1.使用窗口加载,将图片变为背景显示

ImageIcon bg =new ImageIcon(image);

JLabel jl = new JLabel(bg);

jl.setBounds(0,0,bg.getIconWidth(),bg.getIconHeight());

jf.setSize(bg.getIconWidth(), bg.getIconHeight());

jf.setResizable(false);

//将图片添加到分层窗格的最底层作为背景

jf.getLayeredPane().add(jl, new Integer(Integer.MIN_VALUE));

//内容窗格转化为JPanel,否则不能设置为透明

JPanel jp = (JPanel)getContentPane();

jp.setLayout(null);

jp.setOpaque(false);//设置为透明

2.使用Graphics画笔将图片画在窗口中

重写窗体类的paint(Graphics g)方法

public void paint(Graphics g){

g.drawImage(0,0,400,300,null);   //该方法的主体是窗口

}

当然也可以自己写一个画图的方法

public void draw(Graphics g){

g.drwaImage(0,0,400,300,null);   //记得传一个Graphics画笔进来

}

3.关于Graphics 对象为null的解决

(1)paint系列方法里的是jre创建的

(2)当前类继承了jframe的话直接可以这样写的graphics g=getgraphics();

(3)其他情况通过 Graphics g =new Graphics();出来的对象为null,应该采用下面方法:

BufferedImage bi = new BufferedImage(120,120, BufferedImage.TYPE_INT_ARGB);

Graphics2D g2d = bi.createGraphics();



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以使用`java.awt.Font`类和`java.awt.font.TextLayout`类将创建的字体对象转换为2维图片对象。具体步骤如下: 1. 创建一个`Font`对象,设置字体的大小、样式等属性。 2. 使用`Font`对象创建一个`TextLayout`对象,通过`TextLayout`对象可以获取到文本在2维平面上的大小和位置信息。 3. 使用`TextLayout`对象创建一个`BufferedImage`对象,设置`BufferedImage`对象的宽度和高度,将文本渲染到`BufferedImage`对象。 4. 将`BufferedImage`对象保存图片文件或者将其展示在界面上。 下面是一个示例代码,将“Hello World”字符串转换为2维图片对象保存为PNG格式的图片文件: ```java import java.awt.Font; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.font.TextLayout; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class FontToImage { public static void main(String[] args) throws Exception { // 创建字体对象 Font font = new Font("Arial", Font.BOLD, 48); // 创建TextLayout对象 TextLayout textLayout = new TextLayout("Hello World", font, null); // 获取文本在2维平面上的大小信息 int width = (int) textLayout.getBounds().getWidth(); int height = (int) textLayout.getBounds().getHeight(); // 创建BufferedImage对象 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); // 将文本渲染到BufferedImage对象上 Graphics2D g2d = image.createGraphics(); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); textLayout.draw(g2d, 0, height); g2d.dispose(); // 保存成PNG格式的图片文件 ImageIO.write(image, "PNG", new File("HelloWorld.png")); } } ``` 运行上述代码后,会在项目根目录下生成一个名为“HelloWorld.png”的PNG格式的图片文件,其包含了“Hello World”字符串的2维图片对象

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值