Resize or Scale QR Codes
Contents
[
Hide
]
Resizing or Scaling QR Code
To generate a QR Code with customize sized image, please refer to the following steps:
- Select the Type
- Input the QR Code content data
- Use the size slider to set the size of the image under settings section
- Click Generate Preview button
You will see the generated QR Code of your customize sized image under preview section.
Procedure
API
GET /qrcodegen/api/qrcode/generate?data=<URL>&foreColor=&bgColor=&ecc=&size=150x150&format=
Example:
http://localhost:8080/qrcodegen/api/qrcode/generate?data=http://aspose.com&foreColor=&bgColor=&ecc=&size=150x150&format=
Java Script
The addRequestSettings function is used to add customize QR Code settings in the API request parameters.
addRequestSettings : function(requestString){
requestString = requestString + "&ecc=" + this.$('.errorCorrectionCode option:selected').text();
requestString = requestString + "&foreColor=" + encodeURIComponent(this.$('.input-fcolor').val());
requestString = requestString + "&bgColor=" + encodeURIComponent(this.$('.input-bgcolor').val());
if(this.$('.input-size').val() != "100x100")
requestString = requestString + "&size=" + this.$('.input-size').val();
return requestString;
}
Java
Core API Method - QRCodeManagementController.generateQRCode
@RequestMapping(value = "generate", method = RequestMethod.GET,
produces = {MediaType.IMAGE_JPEG_VALUE, MediaType.IMAGE_PNG_VALUE, MediaType.IMAGE_GIF_VALUE, MediaType_IMAGE_TIFF_VALUE, MediaType_IMAGE_BMP_VALUE})
@ApiOperation(value = "Generate QR Code.")
public ResponseEntity<byte[]> generateQRCode(
@ApiParam( value = "data", name="data" , required = true)
@RequestParam("data") String data,
HttpServletRequest request,HttpServletResponse response,
@ApiParam( value = "A user-chosen password that can be used with password-based encryption (PBE) Algo PBEWITHMD5AND128BITAES-CBC-OPENSSL)", name="passKey", required=false) @RequestParam(required=false, value="passKey") String passKey,
@ApiParam( value = "ForeColor e.g #000000 (Black - RGB(hex))", name="foreColor", required=false) @RequestParam(required=false, value="foreColor") String foreColor,
@ApiParam( value = "BackgroundColor e.g #FFFFFF (White - RGB(hex))", name="bgColor", required=false) @RequestParam(required=false, value="bgColor") String bgColor,
@ApiParam( value = "L|M|Q|H - Reed-Solomon error correctionCode Level(from low to high) default=Low", name="ecc", required=false) @RequestParam(required=false, value="ecc") String ecc,
@ApiParam( value = "Image Size e.g #150x150", name="size", required=false) @RequestParam(required=false, value="size") String size,
@ApiParam( value = "jpeg|tiff|gif|png|bmp - default=png", name="format", required=false) @RequestParam(required=false, value="format") String format,
@ApiParam( value = "true|false default=false", name="download", required=false) @RequestParam(required=false, value="download") boolean download,
@ApiIgnore @Value("#{request.getHeader('" + ACCEPT_HEADER + "')}") String acceptHeaderValue) throws Exception {
Resizing or Scaling Code Spinet - QRCodeManagementController.generateQRCode
// Set graphics unit
builder.setGraphicsUnit(GraphicsUnit.Millimeter);
// Set margins
builder.getMargins().set(0);
builder.setForeColor(getColorValue(foreColor, "#000000"));
builder.setBackColor(getColorValue(bgColor, "#FFFFFF"));
logger.debug("builder.getGraphicsUnit() ::" + builder.getGraphicsUnit());
// Get BufferedImage with exact bar code only
BufferedImage img = builder.getOnlyBarCodeImage();
logger.debug("img.getWidth() : :" + img.getWidth());
logger.debug("img.getHeight() :: " + img.getHeight());
if(imageDimention.getWidth() < img.getWidth())
imageDimention.width = img.getWidth();
if(imageDimention.getHeight() < img.getHeight())
imageDimention.height = img.getHeight();
BufferedImage img2 = builder.getCustomSizeBarCodeImage(imageDimention, true);
MediaType responseType = responseImageTypeDto.getMediaType();
ImageIO.write(img2, responseType.getSubtype(), baos);
baos.flush();
imageInByte = baos.toByteArray();
baos.close();