Java基础 canvas加载图片问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础 canvas加载图片问题相关的知识,希望对你有一定的参考价值。

加载图片出现异常 显示不出来
public class GameCanvas extends Canvas implements Runnable
boolean PaintState=true;
Image soccerImage;

public GameCanvas()

try
soccerImage=ImageIO.read(new File("/image/soccer.jpg"));
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();



@Override
public void paint(Graphics g)

g.drawImage(soccerImage, 50, 50, this);

我的图片是加载在 image包中的一个soccer.jpg 的文件
不知道是路径不对还是怎么 , 显示找不图片 。 我想用相对路径 不用绝对路径。

如果这个方法不能使用相对路径 , 我希望能给予新的加载办法,

package zhidao;

import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class GameCanvas extends Canvas implements Runnable

private static final long serialVersionUID = 1L;
boolean PaintState = true;
Image soccerImage;

public GameCanvas ()

try

soccerImage = ImageIO.read (this.getClass ().getResourceAsStream ("../image/soccer.jpg"));
System.out.println (soccerImage.getWidth (null));

catch (IOException e)

e.printStackTrace ();



@Override
public void paint ( Graphics g )

g.drawImage (soccerImage, 50, 50, this);


@Override
public void run ()


public static void main ( String[] args )

new GameCanvas ();

 

追问

用了你的代码还是异常

还是有错

追答

提问者懂不懂包的概念,路径的概念???

这样的话你应该是这样写的../../../image/soccer.jpg

参考技术A 路径不对吧,写成绝对路径,“C:/image/soccer.jpg"

canvas初体验之加载图片

上一篇的介绍主要是画一些基本的图案,这一篇主要是加载图案。

canvas加载图片主要分为两个步骤:

1、获取图片资源。

2、将图片资源画到画布上。

1.1获取图片资源,canvasAPI为我们提供了多个方法

  • Image元素
  • <video>标签
  • 其他的canvas中的图片资源

主要可以概括为为两种方法。

 

以上是关于Java基础 canvas加载图片问题的主要内容,如果未能解决你的问题,请参考以下文章

canvas初体验之加载图片

自定义View基础之——图片加载进度条

学习 | canvas实现图片懒加载 && 下滑底部加载

笔记canvas图片预加载及进度条的实现

html5 canvas怎么载入图像

canvas代替imgage,可以有效的提高大图片加载的速度!