是否有 Javascript 函数来反转相机的所有颜色(负面影响)?

Is there a Javascript function to invert all the colors (negative effect) of the camera?

所以,我正在使用 Appcelerator Titanium(不是 ALLOY)构建一个应用程序(主要用于 Android),它可以打开相机并读取二维码。到目前为止,这么好,它做了它应该做的。但是,有些版本的 QRCode 有反转的颜色,我的应用程序无法读取它们。所以,我也在尝试找到一种方法来反转相机的视图,这样 QRCode 就可以像普通 QRCode 一样被读取。

我尝试了一些函数将颜色十六进制代码转换为 RGB。下面我将 post 代码的某些部分作为示例。

拜托,如果有人有解决办法,请帮助我! =)

我试过使用CSS添加过滤器,但只能在Alloy,不常见的Ti.UI项目中使用,这是我的情况。

    var overlay = Ti.UI.createView({
    backgroundColor: 'transparent',
    top: 0,
    right: 0,
    bottom: 0,
    left: 0,
    id: 'overlay',
});
//the overlay is called when the camera opens, it is the main view in which I have to invert the colors....

function rgbaToHex(r, g, b, a) {
    var toHex = function(n) {
        return ('00' + (n | 0).toString(16)).slice(-2);
    };
    return '#' + toHex(((a * 100) / 100) * 255) + toHex(r) + toHex(g) + toHex (b);
};
//this is a rgba to hex function I found on the web, and it works, just not as I need it....

如果你正在使用 ZXing,我假设你是,并且如果你只是想阅读倒码颜色,请尝试在 DecodeHandler decode() 上添加此 class:

if (rawResult == null) {
    LuminanceSource invertedSource = source.invert();
    bitmap = new BinaryBitmap(new HybridBinarizer(invertedSource));
    try {
      rawResult = multiFormatReader.decodeWithState(bitmap);
    } catch (NotFoundException e) {
      // continue
    } finally {
      multiFormatReader.reset();
    }
  }

它不会将相机反转为负片,但它会像普通相机一样工作 barcode/QRCode。