Adjust Foreground and Background colors

Foreground and Background Color Selection

To generate a QR Code with customize foreground and background color image, please refer to the following steps:

  1. Select the Type
  2. Input the QR Code content data
  3. To select a new foreground color, click in foreground button under settings section
  4. Similarly, To select a new background color, click in background button under settings section
  5. Click Generate Preview button

You will see the generated QR Code of your selected foreground and background color image under preview section.

Procedure

API

 GET /qrcodegen/api/qrcode/generate?data=<URL>&foreColor=#8f013c&bgColor=#8a9e91&ecc=&size=&format=

Example:

http://localhost:8080/qrcodegen/api/qrcode/generate?data=http://aspose.com&foreColor=%238f013c&bgColor=%238a9e91&ecc=&size=&format=

Generated QR Code

todo:image_alt_text

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 {

Foreground and Background Color Code Spinet - QRCodeManagementController.generateQRCode

 builder.setForeColor(getColorValue(foreColor, "#000000"));

builder.setBackColor(getColorValue(bgColor, "#FFFFFF"));


private Color getColorValue(String foreColor, String defautlValue) {

 if(StringUtils.isBlank(foreColor))

 return Color.decode(defautlValue);

 else

 return Color.decode(foreColor);

 }