论坛: Japanese (Thread #13546)

バグ (2007-02-01 12:25 by 匿名 #27410)

最新バージョンのqrcode.zip 0.7.1をダウンロードし,
QRCodeDecoderGUIExampleを利用して,
動作検証を行っているのですが,バグがあるように思われます.

リリースメモにてバージョン1~40に対応しているということなので,
フリーのエンコードソフト(RealTimeQRCodeMaker,QR Code Editor等)を
利用して各バージョンでエンコード画像(QRコード画像)を作成して
試したのですが,結果表示できるものとできないもの,結果表示が文字化け?したもの,
エラーが表示されてしまうものがあることがわかりました.
また結果が表示されたバージョンでも,文字数を増やしたら
表示されなかったり,エラーが表示されてしまうものがありました.
下記に試した結果内容の一部を記載します.

1)表示できなかった場合
文字(a)/誤り訂正レベル(L)/バージョン(4)/画像ファイル(jpg,gif,png)

Starting QRCode Decoder GUI Example ...
Decoding started
Drawing matrix.
Scanning Finder Pattern.
Not found, now retrying...
Invalid number of Finder Pattern detected
--------

2)結果表示が文字化け?した場合
文字(a)/誤り訂正レベル(L)/バージョン(26)/画像ファイル(jpg)

Starting QRCode Decoder GUI Example ...
Decoding started
Drawing matrix.
Scanning Finder Pattern.
Not found, now retrying...
originPoint is: (14,14)
Version info error. now retry with other place one.
FinderPattern at
(14,14)(242,14)(14,242)
Angle*4098: Sin 0 Cos 4194304
Version: 26
Adjust AP(2,2) to d(1,-1)
Adjust AP(2,3) to d(-2,1)
Adjust AP(3,3) to d(2,4)
Adjust AP(3,4) to d(0,-1)
AlignmentPatterns at
(20,20)(68,20)(124,20)(180,20)(236,20)
(20,68)(68,69)(124,69)(180,69)(236,69)
(20,124)(68,125)(125,125)(180,126)(236,126)
(20,180)(68,181)(122,183)(181,187)(236,185)
(20,236)(68,237)(123,239)(180,241)(236,242)
Creating sampling grid.
Reading grid.
gridSize=121
Created QRCode symbol.
Reading symbol.
Version: 26-L
Mask pattern: 011
Correcting data errors.
9 data errors corrected.
Reading data blocks.
Decoding succeeded but needed for
correct errors. Retrying..
--
Decoding restarted #1

----- (省略) -----

--
Decoding restarted #7
Sampling grid adjusted d(-1,-1)
gridSize=121
Created QRCode symbol.
Reading symbol.
Version: 26-L
Mask pattern: 011
Correcting data errors.
8 data errors corrected.
Reading data blocks.
Invalid mode: 9 in (block:263 bit:0)
All trials need for correct error
Reporting #0 that,
corrected minimum errors (9)
Decoding finished.

Decode result:
幺匱注紋偕斑斈勦狐逮撫晰健潸皇翊賢瑚冦ч諒髀=楴〇??迭磯砺??瑚鱚癌婚囈〒樊樌?リ????禾綣郵其ポ軣薀う値?y垓耄汢Е杢⑯??股義㌢仞當蘚並豫??棉梃橢俘怨譲漸瓢鰔健冉?」翊雫詰冦?b厠髀≠?ロ?N錻苒塊邦對夢遇?`杭抑刧槞こ獎??廳餡紵算鮓抗?ム業蒜笋??堙証膊貲??О⑭板却㌢石當蚋逐篳?ワ嚆槓迢葹○0全蹌家噺r鰹蘚見僕冩?ロ禰髀艮楴?J擱曹脚嬖釧畸顧??罧号貮檍陰?Z??曩漸紵災幻攻?モ蘰錨じ?|‘賄晦??韓嶇陀覲閥㌢柁疽蚶清倩ζ厄槓辷嘶??⑩鵈閧片仇筐魅薀弗?z矛刔鈬鵝刎肭?J舉怎脚娜尠畫吾樔們獄??廩爬奪???aゲ躊鞨砺攻?v蘚鋲??凩‘喀斑?Y藝?マ善≡孅断犀倉翩臆网?d駸梃隨冶洩②朽釘輝田洪亦??贋假僉皎刪鵙獵怨祕選┓パ隅京蔓互嚼侘濠ρ槓爬路音?aた鄭???n洪簧怕?`柔?}密咤鵞?Y蠧祀巾㈲途梧㍑鈬硬控護飾剞諒鶚作遜④活閧稼駅類偐偈播椀竸▲僭腦鈷堰猩_敕解侯z??箴y隰儂持槓煦忘?y?e渟諱?ユ蛆n篶帑腹魅喋棉影尋?X醵グ ̄為??梧㌶九筅週溢Ы僖称蓿哘兌0貸顳騎憶だ偐伜?、椀梁翩僭匈俘艶猴媛闥?廓ぁ幻?d覗倩凩刔鍠菲麭?{?サ??閨?ユ忻??篶轡腹魅凌也影尋唳?゙孕帯蹲友S?W礼丈蹴螫??僞鍠鯊哮乳⑯範堕輝噸湖疽丿飾們哉?ヌ僭匸籀艶槁侭闥タ叱z謹ヅ芙篦?]Д舉???\彈0緊??却⑬闔甦斫??魅範刧影?ノ???゙塢痩蹲優公?ム粧薀払還??諒蔑鯊哮?サ⑯値?c輝噸喧疵嵐清豫砌璽梭?ノ詞化営詔闥凰其z傾襯芙号縉刔猯柊寤?k軣塑狐雙侯載當邃宙倅顳辯忸瀕級?゙??然蹲喀淡猷小薈払艶凩÷亢繁?リ厥0藻業鬼甦火疽娚垈豫緞璽梭骭手鉛賤?ネ迭?岳??校??仏困厦刔瑁←?H斈?G緊軍仂公后甜焼輔隨??佗廬鶫??⊇??椛躋迪稚?ム書蘚腐餌??迷佚斑媾呰祟逮侮于侯寨薙薨墜豫岑纒梭劑醐??演??醴??????遇残癌簇庚瘍氤肘?H妁橲塑郡它致号?ィ薀懲中凩岌甅秤Х骸⑮怠酖義騨??睫慧分陰噂寇几晦媚網⑭袋被??健幹??翊癆峡儁渋路骼擶??♀寡旆タ善ハ控弦?ク簀劇腮氈絞侑??b⑱煢仂孫笋「翔聴跟??嬋?ヲ菲?Z榎8??憧暼騨楚疽邃??网??ブ梭??祷怨墨帯樗餞3稗干薹排首??區讖磚Й釖礙極┷補賢?゙畫薩刈罧轟怜槓兪????盈椦酖?ノ????縡㎝亭錯熏箕う晦????恟善④呆梧圏軛蘚志隨咨話?L祢?ミ??⑯漸
--------

3)エラーが表示した場合
文字(aa)/誤り訂正レベル(L)/バージョン(40)/画像ファイル(jpg,gif,png)

Starting QRCode Decoder GUI Example ...
Decoding started
Drawing matrix.
Scanning Finder Pattern.
Not found, now retrying...
originPoint is: (7,7)
Version info error. now retry with other place one.
FinderPattern at
(7,7)(177,7)(7,177)
Angle*4098: Sin 0 Cos 8388608
Version: 40
Adjust AP(1,0) to d(0,0)

----- (省略) -----

Adjust AP(1,6) to d(0,-4)
--
Decoding restarted #1
java.lang.IllegalStateException: This method must be called after QRCodeImageReader.getQRCodeSymbol() called
at jp.sourceforge.qrcode.codec.reader.QRCodeImageReader.getQRCodeSymbolWithAdjustedGrid(QRCodeImageReader.java:241)
at jp.sourceforge.qrcode.codec.QRCodeDecoder.decode(QRCodeDecoder.java:166)
at jp.sourceforge.qrcode.codec.QRCodeDecoder.decode(QRCodeDecoder.java:90)
at example.QRCodeDecoderGUIExample.actionPerformed(QRCodeDecoderGUIExample.java:122)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:289)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1113)
at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(BasicMenuItemUI.java:943)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

上記に関して何か情報があれば幸いです.

回复到 #27410×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登录

RE: バグ (2007-02-12 17:21 by yanbe #27567)

報告ありがとうございます.

実際にエラーの原因となったQRコード画像を送っていただけるとデバッグに役に立つので,差し支えなければ yanbe [at] users.sourceforge.jp まで送っていただけると助かります.

0.7.1までは,"誤り訂正後に依然としてエラーが存在するか"というReed-Solomon符号が持つ情報を利用できていなかったので,デコード結果によってはエラーを含むデコード結果を返してしまうことがありました.しかしこれは最新リリースであるバージョン0.7.2では修正されていますので,お試しください.

バージョン0.7.2の変更点はリリースメモの通りなのですが,Reed-Solomon誤り訂正符号の部分のバグや謝り訂正後にデータの解釈する部分に,かなり大きなバグフィックスが行われております.なので,このバージョンでもバグが再現するか追試していただけるとありがたいです.
回复到 #27410

回复到 #27567×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登录