Skip to content

Commit a3b5ac6

Browse files
committed
Fixed bug in WindowBlendImage mode 4 (dissolve)
1 parent bcb73dc commit a3b5ac6

File tree

2 files changed

+36
-6
lines changed

2 files changed

+36
-6
lines changed

miniwindow.cpp

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2089,9 +2089,35 @@ long CMiniWindow::BlendImage(LPCTSTR ImageId,
20892089
case 2: Blend_It (Blend_Average); break;
20902090
case 3: Blend_It (Blend_Interpolate); break;
20912091

2092-
case 4: // dissolve - randomly choose pixels based on opacity
2093-
for (i = 0; i < count; i++)
2094-
pB [i] = (genrand () < Opacity) ? pA [i] : pB [i];
2092+
case 4: // dissolve - randomly choose pixels based on opacity
2093+
{
2094+
2095+
for (row = 0; row < iHeight; row++)
2096+
{
2097+
long base = row * perline;
2098+
unsigned char rA, gA, bA, rB, gB, bB;
2099+
for (i = 0; i < perline - 2; )
2100+
{
2101+
double rnd = genrand ();
2102+
bA = pA [base + i];
2103+
gA = pA [base + i + 1];
2104+
rA = pA [base + i + 2];
2105+
2106+
bB = pB [base + i];
2107+
gB = pB [base + i + 1];
2108+
rB = pB [base + i + 2];
2109+
2110+
pB [base + i] = (rnd < Opacity) ? rA : rB;;
2111+
i++;
2112+
pB [base + i] = (rnd < Opacity) ? gA : gB;
2113+
i++;
2114+
pB [base + i] = (rnd < Opacity) ? bA : bB;
2115+
i++;
2116+
2117+
}
2118+
} // end for each row
2119+
2120+
}
20952121
break;
20962122

20972123
// darkening modes

scripting/methods.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13775,9 +13775,13 @@ long r, g, b;
1377513775
case 3: Blend_It (Blend_Interpolate); break;
1377613776

1377713777
case 4: // dissolve - randomly choose pixels based on opacity
13778-
r = (genrand () < Opacity) ? rA : rB;
13779-
g = (genrand () < Opacity) ? gA : gB;
13780-
b = (genrand () < Opacity) ? bA : bB;
13778+
{
13779+
double rnd = genrand ();
13780+
13781+
r = (rnd < Opacity) ? rA : rB;
13782+
g = (rnd < Opacity) ? gA : gB;
13783+
b = (rnd < Opacity) ? bA : bB;
13784+
}
1378113785
break;
1378213786

1378313787

0 commit comments

Comments
 (0)