freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Git][freetype/freetype-demos][master] [ftinspect] Support gray level sc


From: Werner Lemberg (@wl)
Subject: [Git][freetype/freetype-demos][master] [ftinspect] Support gray level scaling.
Date: Wed, 15 Mar 2023 04:58:52 +0000

Werner Lemberg pushed to branch master at FreeType / FreeType Demo Programs

Commits:

  • 9f864441
    by Charlie Jiang at 2023-03-15T05:55:46+01:00
    [ftinspect] Support gray level scaling.
    
    See commit 746d5be5: Convert to 256 grays. Slightly tweaked code style.
    
    * src/ftinspect/engine/rendering.cpp (RenderingEngine::convertBitmapTo8Bpp):
    Implement it.
    

1 changed file:

Changes:

  • src/ftinspect/engine/rendering.cpp
    ... ... @@ -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
     
    


  • reply via email to

    [Prev in Thread] Current Thread [Next in Thread]