javascript - 如何在javascript中检查图像是否为损坏图像

标签 javascript jquery

我从 Twitter 获取个人资料图片并将图片 url 存储在我的数据库中。一些 url 给出损坏的图像,其中 url 以图像扩展名结尾,任何人都可以帮助我检查图像是有效图像还是损坏图像。如果存在损坏的图像,我需要显示默认图像。

var image = opinionmakers[i].user_image;

                if (type == 'Twitter' && image.match(/jpeg/)) {
                    img = image.slice(0, -12) + ".jpeg";

                } else if (type == 'Twitter' && image.match(/jpg/)) {
                    img = image.slice(0, -11) + ".jpg";

                } else if (type == 'Twitter' && image.match(/JPG/)) {
                    img = image.slice(0, -11) + ".JPG";

                } else if (type == 'Twitter' && image.match(/png/)) {
                    img = image.slice(0, -11) + ".png";

                } else if (type == 'Twitter' && image.match(/gif/)) {
                    img = image.slice(0, -11) + ".gif";


                } else {
                    img = image;
                }

最佳答案

首先,为了检查正确的图像扩展,我建议使用这样的 regex.test 函数

/\.(jpeg|jpg|png|gif)\b/i.test(url);

这意味着“匹配所有带有 '.' 的模式后跟 () 中的任何字符串,/b 表示单词结束,/i 表示不区分大小写。您也可以只使用它一次,在其余代码之前使用它以使其更清晰。

要检查有效图像,您可以创建一个 img 元素并对它的错误使用react并加载回调,就像这样 https://jsfiddle.net/msong1q2/1/

var IsValidImage = function (url, callback) {
    $("<img>", {
        src: url,
        error: function () {
            callback(url, false);
        },
        load: function () {
            callback(url, true);
        }
    });
}
var CallbackFunction = function (url, isValid) {
    if (isValid) {
        alert(url + ' is valid image');
        //do whatever logic you want
    } else {
        alert(url + ' is invalid image');
        //do whatever logic you want
    }
}
IsValidImage('http://nonextistentUrl.com/image.png', CallbackFunction);
IsValidImage('http://placehold.it/350x150.png', CallbackFunction);

关于javascript - 如何在javascript中检查图像是否为损坏图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30272956/

相关文章:

javascript - 在没有安装 IDE 或编辑器的情况下开发 TypeScript

javascript - Mootools Form.Validate 不触发事件

javascript - D3js Canvas 和线条不可见

javascript - 将对象传递给 JS 函数

Javascript 控制台 jquery SlideDown 函数

javascript - 在 JavaScript 中向对象的特定位置添加键

javascript - 在 React 中将键排序到映射中

xlink 的 jQuery 选择器

javascript - 获取 json 数据中的嵌套映射

jquery - 使用位置 :fixed to align div relatively to div