mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 04:57:00 -04:00
allow set_alpha to handle values > 1.0
This commit is contained in:
+24
-9
@@ -142,15 +142,30 @@ void set_alpha(Image& img, Byte* al, const wxSize& alpha_size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void set_alpha(Image& img, double alpha) {
|
void set_alpha(Image& img, double alpha) {
|
||||||
Byte b_alpha = Byte(alpha * 255);
|
size_t size = img.GetWidth() * img.GetHeight();
|
||||||
if (!img.HasAlpha()) {
|
if (alpha <= 0.0) {
|
||||||
img.InitAlpha();
|
if (!img.HasAlpha()) img.InitAlpha();
|
||||||
memset(img.GetAlpha(), b_alpha, img.GetWidth() * img.GetHeight());
|
memset(img.GetAlpha(), Byte(0), size);
|
||||||
} else {
|
}
|
||||||
Byte *im = img.GetAlpha();
|
else if (alpha > 1.0) {
|
||||||
size_t size = img.GetWidth() * img.GetHeight();
|
if (!img.HasAlpha()) return;
|
||||||
for (size_t i = 0 ; i < size ; ++i) {
|
else {
|
||||||
im[i] = (im[i] * b_alpha) / 255;
|
Byte *im = img.GetAlpha();
|
||||||
|
for (size_t i = 0 ; i < size ; ++i) {
|
||||||
|
im[i] = Byte(min(im[i] * alpha, 255.0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Byte b_alpha = Byte(alpha * 255);
|
||||||
|
if (!img.HasAlpha()) {
|
||||||
|
img.InitAlpha();
|
||||||
|
memset(img.GetAlpha(), b_alpha, size);
|
||||||
|
} else {
|
||||||
|
Byte *im = img.GetAlpha();
|
||||||
|
for (size_t i = 0 ; i < size ; ++i) {
|
||||||
|
im[i] = (im[i] * b_alpha) / 255;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user