There is a CSS property that allows you to "hide" the background color of an image, but that image has to be set to background
.
The background of the div that has the image has to be the same background color as the page, the color you want to replace the white one with. The example in Jsbin.
background-image: url(lifeboat-vector-3669456.jpg);
background-color: grey; /* aqui será a cor de fundo da página */
background-blend-mode: multiply;
But not supported on all browsers, and may not work properly with all colors.
I would suggest using a server-side solution, using PHP or any other language you are using.
You will probably have to use a canvas and run pixel by pixel to "copy" the original image less transparent pixels. It would be better to edit the question with more sample images, because the "but could be any other" part seems to have been totally ignored in all the answers. Put one against a background of another color, so it will help identify which answers actually work.
– Bacco