I'd code it....lol.
Make an image of the size of the background image with the logo in place such that it would paste exactly onto the background image, the logo being in the right place.
You could draw the back, then the logo, masked, then read through each pixel on the resulting image checking its difference to its surrounding pixels, and if its outside a range, move it within so that the difference in r,g and b between any two joined pixels is not too great (horizontally and vertically/both simultaneously): Of course that would fuzz the whole image, so 2 solutions to doing that could be:
a{
Make a black and white (and when i say that i mane FFFFFF and 000000 pixels only) version of the sized logo image, with black as the background and all logo-pixels white.
Then detect the images edges, and smooth the resulting image so the white edges smudge into the black non-edges, but not too much.
Then take the program aboves output, and alpha paste it (depends on what your using: could also be coded/added onto the above code) onto an image that just has the logo pasted onto the background (ie in paint), using the lumination of each pixel the edge-deteced+smoothed image as the corresponding pixels alpha value when calculated against the image being drawn onto: Such that the smoothing is only applied to the edges! (Alternatively yhe whole Program idea could be ignored and a smoothed image be used to siulate the image resulting from the above coded smoothing method.
}
or b(my original thought){
code the edge detection and produce the alpha map in code, etc.
}
or c{
ignore me as this would take many many minutes to do in Blitz (maybe even 10!)
}
Make an image of the size of the background image with the logo in place such that it would paste exactly onto the background image, the logo being in the right place.
You could draw the back, then the logo, masked, then read through each pixel on the resulting image checking its difference to its surrounding pixels, and if its outside a range, move it within so that the difference in r,g and b between any two joined pixels is not too great (horizontally and vertically/both simultaneously): Of course that would fuzz the whole image, so 2 solutions to doing that could be:
a{
Make a black and white (and when i say that i mane FFFFFF and 000000 pixels only) version of the sized logo image, with black as the background and all logo-pixels white.
Then detect the images edges, and smooth the resulting image so the white edges smudge into the black non-edges, but not too much.
Then take the program aboves output, and alpha paste it (depends on what your using: could also be coded/added onto the above code) onto an image that just has the logo pasted onto the background (ie in paint), using the lumination of each pixel the edge-deteced+smoothed image as the corresponding pixels alpha value when calculated against the image being drawn onto: Such that the smoothing is only applied to the edges! (Alternatively yhe whole Program idea could be ignored and a smoothed image be used to siulate the image resulting from the above coded smoothing method.
}
or b(my original thought){
code the edge detection and produce the alpha map in code, etc.
}
or c{
ignore me as this would take many many minutes to do in Blitz (maybe even 10!)
}