0 registered members (),
1,397
guests, and 7
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Bmap creation - wrong Alpha values
#478762
12/11/19 10:07
12/11/19 10:07
|
Joined: Aug 2008
Posts: 394 Germany
Benni003
OP
Senior Member
|
OP
Senior Member
Joined: Aug 2008
Posts: 394
Germany
|
Hi,
I have an issue with pixel_to_bmap / bmap_fill / bmap_save. It is not creating the correct alpha values. If I write 50 for the alpha value, it shows in photoshop L: 61 RGB: 147! At 50 Percent alpha RGB value should be 127.5! All other alpha values create wrong L / RGB values, accept alpha percent is 0 or 100.
I need to have exact values. Here are more examples: (first number is alpha value in Lite-C, second L in Photoshop and third alpha RGB in Photoshop.
0,0,0 5, 4, 14 20,30,71 40,52,124 50,61,147 70,78,193 90,93,235 100,100,255
Thanks
|
|
|
Re: Bmap creation - wrong Alpha values
[Re: Benni003]
#478764
12/11/19 12:43
12/11/19 12:43
|
Joined: Jun 2007
Posts: 1,337 Hiporope and its pain
txesmi
Serious User
|
Serious User
Joined: Jun 2007
Posts: 1,337
Hiporope and its pain
|
Hi, I have been working with exact BYTE values on bitmaps and never realized of such a thing. Always got the values I was especting out. I use GIMP, so let me ask some questions. Do you save the bitmap as TGA? Other formats might change the values, as palettized ones, such PCX, or compressed, such PNG. Do Photoshop apply any color correction on importing proccess? Proffesional bitmap editing programs do commonly apply a color correction. Is there any option while importing? Here goes the results of a new test of mine: #include <acknex.h>
void main () {
wait(3);
BMAP *_bmpT = bmap_createblack(16, 16, 32);
bmap_fill(_bmpT, vector(128, 128, 128), 50);
bmap_save(_bmpT, "b01.tga");
wait(1);
var _frm = bmap_lock(_bmpT, 0);
var _pixel = pixel_for_vec(vector(128, 128, 128), 50, _frm);
pixel_to_bmap(_bmpT, 0, 0, _pixel);
bmap_unlock(_bmpT);
bmap_save(_bmpT, "b02.tga");
wait(1);
var _frm = bmap_lock(_bmpT, 0);
BYTE *_bits = _bmpT->finalbits;
*(_bits + 3) = 127;
bmap_unlock(_bmpT);
bmap_save(_bmpT, "b03.tga");
wait(1);
bmap_remove(_bmpT);
sys_exit(NULL);
} The three bitmaps have the same exact values at pixel x0:y0
|
|
|
|