Werner Lemberg pushed to branch master at FreeType / FreeType Demo Programs
Commits:
-
9f864441
by Charlie Jiang at 2023-03-15T05:55:46+01:00
1 changed file:
Changes:
... | ... | @@ -143,6 +143,26 @@ RenderingEngine::convertBitmapTo8Bpp(FT_Bitmap* bitmap) |
143 | 143 | {
|
144 | 144 | // XXX handling?
|
145 | 145 | }
|
146 | + |
|
147 | + if (out.num_grays == 256)
|
|
148 | + return out;
|
|
149 | + |
|
150 | + // Also scale gray values.
|
|
151 | + auto buf = reinterpret_cast<uint32_t*>(out.buffer);
|
|
152 | + uint32_t scale = 255U / (out.num_grays - 1);
|
|
153 | + |
|
154 | + // Four bytes at a time.
|
|
155 | + unsigned i = 0;
|
|
156 | + unsigned size = std::abs(out.pitch) * out.rows;
|
|
157 | + for (; i <= size - 4; i += 4, buf++)
|
|
158 | + *buf *= scale;
|
|
159 | + |
|
160 | + // The remaining bytes.
|
|
161 | + for (; i < size; i++ )
|
|
162 | + out.buffer[i] *= scale;
|
|
163 | + |
|
164 | + out.num_grays = 256;
|
|
165 | + |
|
146 | 166 | return out;
|
147 | 167 | }
|
148 | 168 |