MCPcopy
hub / github.com/skip2/go-qrcode / NewWithForcedVersion

Function NewWithForcedVersion

qrcode.go:209–258  ·  view source on GitHub ↗

NewWithForcedVersion constructs a QRCode of a specific version. var q *qrcode.QRCode q, err := qrcode.NewWithForcedVersion("my content", 25, qrcode.Medium) An error occurs in case of invalid version.

(content string, version int, level RecoveryLevel)

Source from the content-addressed store, hash-verified

207//
208// An error occurs in case of invalid version.
209func NewWithForcedVersion(content string, version int, level RecoveryLevel) (*QRCode, error) {
210 var encoder *dataEncoder
211
212 switch {
213 case version >= 1 && version <= 9:
214 encoder = newDataEncoder(dataEncoderType1To9)
215 case version >= 10 && version <= 26:
216 encoder = newDataEncoder(dataEncoderType10To26)
217 case version >= 27 && version <= 40:
218 encoder = newDataEncoder(dataEncoderType27To40)
219 default:
220 return nil, fmt.Errorf("Invalid version %d (expected 1-40 inclusive)", version)
221 }
222
223 var encoded *bitset.Bitset
224 encoded, err := encoder.encode([]byte(content))
225
226 if err != nil {
227 return nil, err
228 }
229
230 chosenVersion := getQRCodeVersion(level, version)
231
232 if chosenVersion == nil {
233 return nil, errors.New("cannot find QR Code version")
234 }
235
236 if encoded.Len() > chosenVersion.numDataBits() {
237 return nil, fmt.Errorf("Cannot encode QR code: content too large for fixed size QR Code version %d (encoded length is %d bits, maximum length is %d bits)",
238 version,
239 encoded.Len(),
240 chosenVersion.numDataBits())
241 }
242
243 q := &QRCode{
244 Content: content,
245
246 Level: level,
247 VersionNumber: chosenVersion.version,
248
249 ForegroundColor: color.Black,
250 BackgroundColor: color.White,
251
252 encoder: encoder,
253 data: encoded,
254 version: *chosenVersion,
255 }
256
257 return q, nil
258}
259
260// Bitmap returns the QR Code as a 2D array of 1-bit pixels.
261//

Callers 1

Calls 5

encodeMethod · 0.95
LenMethod · 0.95
newDataEncoderFunction · 0.85
getQRCodeVersionFunction · 0.85
numDataBitsMethod · 0.80

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…