Open SuggonM opened 1 month ago
I'm trying to reverse the pre-multiplication of a texture's alpha
Did you see the premultiplied
option of the composite
operation?
https://sharp.pixelplumbing.com/api-composite
.composite([
{ input: 'texture.png', premultipled: true }
])
Alternatively, if you're providing raw pixel input, there is a premultiplied
constructor property.
https://sharp.pixelplumbing.com/api-constructor
sharp(rawPixelInput, { raw: { width, height, channels, premultiplied: true }})...
Feature request
What are you trying to achieve?
Any one of these two blendmodes/filters:
Description
Hello, good day. I see there is a good list of image compositing options in the composite method. There is one for
add
andmultiply
, but the interface doesn't providedivide
out of the box.Upon further digging around, it seems that both of these are already implemented in the libvps library as native functions: Divide and Unpremultiply. So any possibility for these being accessible from Sharp interface?
In my specific case, I'm trying to reverse the pre-multiplication of a texture's alpha (PMA is a common pattern in modern games). In theory, a
divide
operation is able to undo it quite easily, so it would be a perfect fit for this job.(The
unpremultiply
linked above is even more straightforward, but usage of such a specific function in case of Sharp is rather rare and perhaps obsolete.)