Csmilef
2012-11-19 08:01
采纳率: 50%
浏览 11.8k
已采纳

使用ZXing摄像头解码的困惑

在网上看到android中使用ZXing解二维码的网站,看到这部分代码不太懂:
PlanarYUVLuminanceSource source = new PlanarYUVLuminanceSource( data, width, height, dstLeft, dstTop, dstWidth,dstHeight, false);

里面的参数不知道什么意思?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • Csmilef 2012-11-19 08:21
    已采纳

    其实还是不知道那里面的参数是什么意思。问题其实想复杂了,使用ZXing给我们提供的方法就可以实现二维码的解码功能。
    首先需要在项目中引用zxing库,右键项目,properties,点击android,点击下面的add按钮增加zxing库。

    在AndroidMainfest.xml中加入:
    android:name="com.google.zxing.client.android.CaptureActivity"
    android:configChanges="orientation|keyboardHidden" />
    android:name="com.google.zxing.client.android.PreferencesActivity"
    android:configChanges="orientation|keyboardHidden" />

    在onActivityResult中使用CaptureActivity.getResult(MainActivity.this)获得解码结果。

    已采纳该答案
    打赏 评论
  • Kakalapa1986 2012-11-19 08:31

    android中dstLeft, dstTop, dstWidth,dstHeight的用法是,根据当前图像的位图按比例缩小,生成指定高、宽等数据的新图像。这里有连接说明

    打赏 评论
  • yongyong_21 2012-11-20 02:55

    我查看ZXing source code代码,没有boolean参数的构造函数

    PlanarYUVLuminanceSource(byte[] yuvData, int dataWidth, int dataHeight, int left, 
       int top, int width, int height) 
    {
       super(width, height);
    
       if (left + width > dataWidth || top + height > dataHeight) 
       {
          throw new IllegalArgumentException("Crop rectangle does not fit within image data.");
       }
    
       this.yuvData = yuvData;
       this.dataWidth = dataWidth;
       this.dataHeight = dataHeight;
       this.left = left;
       this.top = top;
    }
    
    打赏 评论

相关推荐 更多相似问题