Giter Club home page Giter Club logo

Comments (2)

makiuchi-d avatar makiuchi-d commented on May 18, 2024

I got a result with DecodeHintType_PURE_BARCODE.

	result, err := qrReader.Decode(bmp, map[gozxing.DecodeHintType]any{
		gozxing.DecodeHintType_PURE_BARCODE: true,
	})

The online decoder is trying several DecodeHintType patterns and there is a pattern contains DecodeHintType.PURE_BARCODE.
https://github.com/zxing/zxing/blob/master/zxingorg/src/main/java/com/google/zxing/web/DecodeServlet.java#L113

from gozxing.

wunderbarb avatar wunderbarb commented on May 18, 2024

Thanks Makiuchi-san. It works perfectly. I understand now the role of the hints. May I suggest that you provide an example using it in the documentation? This may help users. Following is a piece of code that uses your code with the hints.

// Decode attempts to extract the qrcode from `data`.  `data` is expected to be a raw png
// image.  The function tries several strategies to decode in increasing order of processing time.
func Decode(data []byte) (string, error) {
	img, err := png.Decode(bytes.NewReader(data))
	if err != nil {
		return "", ErrNotPNG
	}
	// prepare BinaryBitmap
	bmp, err := gozxing.NewBinaryBitmapFromImage(img)
	if err != nil {
		return "", ErrNotPNG
	}
	// decode image
	qrReader := qr1.NewQRCodeReader()
	result, err := qrReader.Decode(bmp, nil)
	if err == nil {
		return result.GetText(), nil
	}
	m := map[gozxing.DecodeHintType]any{
		gozxing.DecodeHintType_PURE_BARCODE: true,
	}
	result, err = qrReader.Decode(bmp, m)
	if err == nil {
		return result.GetText(), nil
	}
	m1 := map[gozxing.DecodeHintType]any{
		gozxing.DecodeHintType_TRY_HARDER: true,
	}
	result, err = qrReader.Decode(bmp, m1)
	if err != nil {
		return "", ErrNotQRCode
	}
	return result.GetText(), nil
}

from gozxing.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.