java - 通过 Toolkit 制作的图像返回 -1 作为宽度、高度

标签 java toolkit

java.awt.Toolkit kit = Toolkit.getDefaultToolkit();
try {
   java.awt.Image img,ig;
   img = kit.getImage("/home/aditya/Pictures/tile.png");
   ig =
      javax.imageio.ImageIO.read(
         new java.io.File("/home/aditya/Pictures/tile.png"));
}
int w  = img.getWidth(null);
int wp = ig .getWidth(null);
int h  = img.getHeight(null);
int hp = ig .getHeight(null);
System.out.println(wp+" "+hp+" "+w+" "+h); 

始终给出此输出

59 64 -1 -1

即通过工具包创建的图像的宽度、高度始终返回-1。

有什么想法吗?

最佳答案

使用 awt 加载图像是异步的。

Look at this tutorial .

class test extends Component
{
    test()
    {
        /* Get the toolkit from this Component */
        Toolkit t = getToolkit();
        /* Begin a retrieval of a remote image */
        Image   i = t.getImage( "https://cdn.southampton.ac.uk/assets/imported/transforms/site/depth/Action_BackgroundImage/E8813999F2F94220B91699A33F794636/201117_syndicut_southamptonUni_Homepage_banner.png_SIA_JPG_fit_to_width_FULL.jpg");
        /* Create a new MediaTracker linked to this Component */
        MediaTracker m = new MediaTracker( this );
        /* Add the loading image to the MediaTracker,
           with an ID of 1 */
        m.addImage( i, 1 );
        /* Explicitly wait for the image to load */
        try
        {
            m.waitForAll();
        }
        /* Catch the exception */
        catch( InterruptedException e )
        {
            System.out.println("Loading of the image was interrupted" );
        }

        /* Check the status */
        if( m.status() & MediaTracker.LOADING )
            System.out.println("Still Loading - oops, we should never be here!");
        if( m.status() & MediaTracker.ABORTED )
            System.out.println("Loading of image aborted");
        if( m.status() & MediaTracker.ERRORED )
            System.out.println("Image was errored");
        if( m.status() & MediaTracker.COMPLETE )
            System.out.println("Image load complete!");
    }
}

关于java - 通过 Toolkit 制作的图像返回 -1 作为宽度、高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15121863/

相关文章:

java - 在 AWS Lambda 控制台中的何处可以找到从 AWS Toolkit for Lambda 上传的 Java 代码

wpf - 扩展 WPF 工具包 RichTextBox 垂直显示文本

java - EMR Spark 在 java main 中工作,但不在 java 函数中工作

java - Hibernate 通过工厂创建关系对象

API、工具包、框架、库

perl - bugzilla 模板文件中的 if 条件检查 bug 是否是克隆 bug

java - 处理与 JavaFx 与 Griffon 的比较

java - Internet 请求第一次有效,但后续请求无效

java - Vertx.io GET 无提示失败

java - 将excel字符串数据存储到数组列表中