рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдореБрдЭреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рдХреНрдпреВрдЖрд░ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдФрд░ рдЗрд╕ рдХреЛрдб рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рдПрдХ рд▓реЛрдЧреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред

рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рдкрд░ рдкрдврд╝реЗрдВред
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдХреНрдпреВрдЖрд░ рдХреЛрдб рд╣рд░ рдЬрдЧрд╣ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХреИрд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдХреНрдпреВрдЖрд░ рдХреЛрдб рд╣рд░ рд╕рдордп рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдирд╣реАрдВ, рдирд╣реАрдВ, рдФрд░ рдкрд╛рд╕ рдореЗрдВ рдХрдИ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╕реБрдЦрдж рджреГрд╖реНрдЯрд┐ рдирд╣реАрдВ рд╣реИ - рдЬреЛ рдкрд╣рд▓реЗ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ? рдФрд░ рд╡реИрд╕реЗ рднреА, рдХреБрдЫ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╕реНрдХреИрди рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреА рдЖрдБрдЦреЛрдВ рдореЗрдВ рд▓рд╣рд░рд╛рдиреЗ рд▓рдЧреЗ?
рдХреНрдпреВрдЖрд░ рдХреЛрдб рдХрд╛ рдирд┐рдЬреАрдХрд░рдг рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ: рдЧреИрд░-рдорд╛рдирдХ рд░рдВрдЧ, рдПрдХ рд▓реЛрдЧреЛ, рдпрд╛ рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдХрдо рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рджрд░реНрд╢рдХ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рдирд╡реНрдпрдирд╛рдпрдХ рдХреЗ рд▓рд┐рдП рд╕реБрдВрджрд░ рдХреНрдпреВрдЖрд░ рдХреЛрдб рджреЗрдЦреЗ рд╣реИрдВ (рдФрд░ рдЬрд┐рд╕рдиреЗ рднреА рджреЗрдЦрд╛ рд╣реИ,
рд╣рдм рдпрд╛
рдХрд┐рд╕реА рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд╕рдВрд╕рд╛рдзрди рдкрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ ), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдПрдХ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЫрд╡рд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдпрд╛ рддреЛ рдмрдбрд╝реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдирд┐рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдлрд╝реЛрдЯреЛрд╢реЙрдк рдореЗрдВ рдРрд╕рд╛ рдХреЛрдб рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛, рдФрд░ рд╣рдо рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЗ рд▓рд┐рдП рдпрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдЬрдм рддрдХ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдпрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред
рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рдХреНрдпреВрдЖрд░ рдХреЛрдб рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЛ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдереА рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдПрдиреНрдХреЛрдбреЗрдб рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╕реНрд╡рдпрдВ рдХреЛрдб рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЙрдЪреНрдЪ рдорд╛рддреНрд░рд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ - рдХреЛрдб рдореЗрдВ рдмрд╛рдж рдХреЗ 30% рддрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдЪрд┐рддреНрд░ рдЙрддрдирд╛ рд╣реА рдореЛрдЯрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рдХреЛрдб рдХреЛ рдбрд┐рдХреЛрдб рдХрд░реЗрдЧрд╛ред рдФрд░ рд╣рдо рдЗрд╕реЗ рд▓реЛрдЧреЛ рдХреЗ рд╕рд╛рде рдмрд┐рдЧрд╛рдбрд╝ рджреЗрдВрдЧреЗред
рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
ZXing рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдпрд╣ рд╡рд┐рднрд┐рдиреНрди 1D / 2D рдмрд╛рд░рдХреЛрдбреНрд╕ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЬрд╛рд╡рд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рд╣реИрдВред
рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдорд╛рд╡реЗрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣реИ -
рдХреЛрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рдЧрдпрд╛ рдерд╛ , рдФрд░
рдЬрд╛рд╡рд╛ рд╕реА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, java.awt рдкреИрдХреЗрдЬ (JavaSE) рд╕реЗ рдорд╛рдирдХ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП!
рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЫреЛрдЯрд╛ рдХрдВрд╕реЛрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЧрд┐рдердм рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ -
рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА , рдЬрд┐рд╕реЗ рдореИрдВ рдЗрд╕ рдЦрдВрдб рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛ред
рдЬрд┐рд╕ рдХрд┐рд╕реА рдХреЛ рднреА рдПрдХ QR рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
BitMatrix matrix = new MultiFormatWriter().encode("text to encode", BarcodeFormat.QR_CODE, width, height); MatrixToImageWriter.writeToFile(matrix, filename.substring(filename.lastIndexOf('.')+1), new File(filename));
рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдереЛрдбрд╝реА рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛рддреНрдордХ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝ рджреЗрдЧрд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рд▓реЛрдЧреЛ рдХреЛ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рднреА рддрд╕реНрд╡реАрд░ рд╣рдорд╛рд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреИрдорд░реЗ рд╕реЗ рдЧрд▓рдд рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдзрд┐рдХрддрдо рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд░реВрдк рд╣реЛрдЧрд╛, рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдо рд░рдВрдЧ рдФрд░ рдЪрд┐рддреНрд░ рдмрджрд▓ рджреЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:
Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<EncodeHintType, ErrorCorrectionLevel>(); hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize, hintMap);
рдХреЛрдб рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рдПрдХ рдЪрд┐рддреНрд░ рдмрдирд╛рдирд╛ рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╣рдо рдЙрдкрдпреБрдХреНрдд рдЖрдХрд╛рд░ рдХреА рдПрдХ рддрд╕реНрд╡реАрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░, рдХреЛрдб рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реБрдП, рдЪрд┐рддреНрд░ рдкрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдПрдХ рдмрд┐рдЯ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдХ рд╕реВрдЪрдирд╛рддреНрдордХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдЖрдк рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ рдФрд░ рдХреЛрдб рд░рдВрдЧ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
int matrixWidth = bitMatrix.getWidth(); BufferedImage image = new BufferedImage(matrixWidth, matrixWidth, BufferedImage.TYPE_INT_RGB); image.createGraphics(); Graphics2D graphics = (Graphics2D) image.getGraphics(); graphics.setColor(Color.white); graphics.fillRect(0, 0, matrixWidth, matrixWidth); Color mainColor = new Color(51, 102, 153); graphics.setColor(mainColor);
рдЦреИрд░, рдЕрдм рдЬрдм рд╣рдо рдПрдХ рддрд╕реНрд╡реАрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд▓реЛрдЧреЛрдВ рдФрд░ рд╢реВрдиреНрдп рдХрд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЗрдВрджреНрд░ рдореЗрдВ рд▓реЛрдЧреЛ рдХреЛ рд░рдЦрдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рдЗрд╕рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдмрд╣реБрдд рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреВрд░реЗ рдХреЛрдб рдХреЛ рдУрд╡рд░рд▓реИрдк рди рдХрд░реЗрдВред
BufferedImage logo = ImageIO.read( this.getLogoFile()); double scale = calcScaleRate(image, logo); logo = getScaledImage( logo, (int)( logo.getWidth() * scale), (int)( logo.getHeight() * scale) ); graphics.drawImage( logo, image.getWidth()/2 - logo.getWidth()/2, image.getHeight()/2 - logo.getHeight()/2, image.getWidth()/2 + logo.getWidth()/2, image.getHeight()/2 + logo.getHeight()/2, 0, 0, logo.getWidth(), logo.getHeight(), null); private BufferedImage getScaledImage(BufferedImage image, int width, int height) throws IOException { int imageWidth = image.getWidth(); int imageHeight = image.getHeight(); double scaleX = (double)width/imageWidth; double scaleY = (double)height/imageHeight; AffineTransform scaleTransform = AffineTransform.getScaleInstance(scaleX, scaleY); AffineTransformOp bilinearScaleOp = new AffineTransformOp( scaleTransform, AffineTransformOp.TYPE_BILINEAR); return bilinearScaleOp.filter( image, new BufferedImage(width, height, image.getType())); }
рдХреЛрдб рдХреЗ рд╣рдорд╛рд░реЗ рджреБрд░реБрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╢реБрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП - рдХреНрдпрд╛ рдПрдХ рдЖрджрд░реНрд╢ рдХреИрдорд░реЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ? рдФрд░ рдЕрдЧрд░ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рддреЛ рдпрд╣ рдХрдЯрд┐рдВрдХрд╛ рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджреЗрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:
if ( isQRCodeCorrect(content, image)) { ImageIO.write(image, imageFormat, this.getGeneratedFileStream()); } private boolean isQRCodeCorrect(String content, BufferedImage image){ boolean result = false; Result qrResult = decode(image); if (qrResult != null && content != null && content.equals(qrResult.getText())){ result = true; } return result; } private Result decode(BufferedImage image){ if (image == null) { return null; } try { LuminanceSource source = new BufferedImageLuminanceSource(image); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); Result result = new MultiFormatReader().decode(bitmap, Collections.EMPTY_MAP); return result; } catch (NotFoundException nfe) { return null; } }
рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рдХреНрдпреВрдЖрд░ рдХреЛрдб рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!