简体   繁体   中英

How do I fill the transparent area inside an image using javascript?

I added a white border to a PNG image with Konvajs例子

konvajs link

I want to turn the transparent area inside the white border to white. So I want to paint the windows of the car white. (Red areas are transparent.)

例子

Expected result:结果

One thing you could maybe do is converting you image to a SVG.

You would then have a path for your car windows with some class. You could afterward change the style of the SVG class in JS.

在此处输入图像描述

在此处输入图像描述

To fix the problem you want background color white. As your link there are a function called removeTransparency it makes the image background color white see it.

      // make all pixels opaque 100% (except pixels that 100% transparent)
      function removeTransparency(canvas) {
        var ctx = canvas.getContext('2d');

        var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
        var nPixels = imageData.data.length;
        for (var i = 3; i < nPixels; i += 4) {
          if (imageData.data[i] > 0) {
            imageData.data[i] = 255;
          }
        }
        ctx.clearRect(0, 0, canvas.width, canvas.height);
        ctx.putImageData(imageData, 0, 0);
        return canvas;
      }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM