开发者社区> 问答> 正文

ImageIO.read的通过new File(),无法读取文件的问题:报错

如题: 代码如下,一段简单的读取图片的代码

 BufferedImage bufferImg = null;//图片一  

   ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); 
   try {
       URL url = new URL(imgUrl); 
bufferImg = ImageIO.read(url);
ImageIO.write(bufferImg, "png", byteArrayOut);
} catch (IOException e) {
e.printStackTrace();
LOGGER.error("生成图片出错");

}


但是如果我通过bufferImg = ImageIO.read(new File(imgUrl));去读取图片就报错;

 Can't read input file!


求解了??

展开
收起
kun坤 2020-06-06 16:55:30 1689 0
1 条回答
写回答
取消 提交回答
  • 引用来自“乌龟壳”的评论

    我一般是这么操作的

    var imageObj = new Image();
    
    imageObj.onload = function () {
        var canvas = document.createElement("canvas");
        canvas.width = imageObj.width;
        canvas.height = imageObj.height;
        var ctx = canvas.getContext("2d");
        ctx.drawImage(imageObj, 0, 0);
        console.log(canvas.toDataURL("image/png"));
    }
    
    imageObj.onerror = function () {
        console.log('error');
    }
    
    imageObj.src = 'http://127.0.0.1/a.jpg';



    恩,方法有其他方法的,只是不知道为啥那样写不行...######

    我一般是这么操作的

    var imageObj = new Image();
    
    imageObj.onload = function () {
        var canvas = document.createElement("canvas");
        canvas.width = imageObj.width;
        canvas.height = imageObj.height;
        var ctx = canvas.getContext("2d");
        ctx.drawImage(imageObj, 0, 0);
        console.log(canvas.toDataURL("image/png"));
    }
    
    imageObj.onerror = function () {
        console.log('error');
    }
    
    imageObj.src = 'http://127.0.0.1/a.jpg';



    ###### 图片地址能找到吗######回复 @李老师-123 : 奇怪的就是 我读取本地E://这种写法是可以的,但是上传到服务器却不行.....######回复 @咖啡加糖 : 图片地址用的服务器地址,还是直接盘符,直接盘符是不行的######可以得,在浏览器中输入地址都可以显示出图片
    2020-06-08 11:21:19
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载