1

如果两张图片相同,我正在制作一个比较两张图片的功能。我有这个代码:

var rez=null;

rez=compareImages();

alert(rez);


boolean function compareImages()
{
    BufferedImage bi1 = java.ImageIO.read(new File("C:\\MyFiles\\pic1.png")),
                    bi2 = java.ImageIO.read(new File("C:\\MyFiles\\pic2.png"));
    Raster r1 = bi1.getData(),
            r2 = bi2.getData();
    DataBuffer db1 = r1.getDataBuffer(),
                db2 = r2.getDataBuffer();
    int size1 = db1.getSize(),
        size2 = db2.getSize();

        // checking if the files sizes are the same
    if(size1 != size2)
        return false;

        // pixel by pixel check up
    for (int i = 0; i < size1; i++) 
        if(db1.getElem(i) != db2.getElem(i))
            return false;

    return true;
}

现在我想在 .js 文件中运行此代码,但是当我这样做时出现错误,缺少“;” 错误。那么如何使这个函数与 javascript 兼容呢?

谢谢。

4

3 回答 3

4

不幸的是,Javacript 和 Java 是完全独立的语言,它们在名称中唯一的共同点,因此这是不可能的。

如果您想了解如何在 javascript 中执行类似操作,请查看 File API:https ://developer.mozilla.org/en-US/docs/DOM/File_APIs

于 2012-11-17T00:22:07.713 回答
3

您不能在 JavaScript 中运行 Java 代码。您可以将您的 Java 代码编译为小程序并将其嵌入到您的页面中,或者您只需在 JS 中重写您的代码。如果您使用html5canvas和该getImageData()功能,这应该是可行的。这样您就可以轻松地从 JavaScript 与您的代码进行交互。

于 2012-11-17T00:24:18.677 回答
1

在您使用Mozilla Rhino用 Ja​​vaScript编写的代码中使用 Java 类和 API 是有可能的。

Rhino 只是一个用 Java 编写的 JS 解释器,它与 JDK 捆绑在一起。它基本上允许您使用带有 JS 语法的 Java API,但另一方面,没有可用的 DOM API,您无法在 Web 浏览器中运行此类脚本。它们由 JVM 运行。

于 2012-11-17T01:35:02.747 回答