带有创建的 PNG 的传单叠加层

Leaflet Overlay with created PNG

我创建了一张 png 图片并希望它显示在传单地图上。

我在下面的代码中尝试过,但它不起作用。

(net::ERR_FILE_NOT_FOUND)

有什么办法可以做到这一点吗?这是代码。

    var pic = new PNGlib(200, 200, 256);      
    var background = pic.color(23, 0, 0, 50); 

    var my_png = pic.getBase64()

    var overlay = new L.ImageOverlay(  my_png   , bounds, {opacity: 0.5,});
    mymap.addLayer(overlay);

我认为您的 URI 有问题。您需要添加 "data:image" 才能显示您的图像。 MDN data URLs

您可以看到适用于我的 codesandbox 的示例。

var pic = new PNGlib(200, 200, 256);      
var background = pic.color(23, 0, 0, 50); 

var my_png = pic.getBase64()
const b64ImgUrl = `data:image/png;base64,${my_png}`;

var overlay = new L.ImageOverlay(  b64ImgUrl   , bounds, {opacity: 0.5,});
mymap.addLayer(overlay);