summaryrefslogtreecommitdiff
path: root/core/fxge
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2017-10-26 11:12:09 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-10-26 15:24:47 +0000
commit53d443f042b590ae2d920def16bc9daf66f8427d (patch)
tree4e2c09f8cbf4c054ee77a7c61f488617bd228ad1 /core/fxge
parentefc879d226e98ddad36704d78f52037ccf4369dc (diff)
downloadpdfium-53d443f042b590ae2d920def16bc9daf66f8427d.tar.xz
Remove ContrastAdjust().
This post-processing increased the contrast of scaled-down features - mainly lines and fonts, relative to the background. The effect does not improved readability and in some cases makes the scaled-down version look like a different document at a glance. Text that is normal weight appears bold when scaled down in these cases. Change-Id: I2544d45e2bcec25d6742d2a60c1316d8df08cce1 Reviewed-on: https://pdfium-review.googlesource.com/15471 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fxge')
-rw-r--r--core/fxge/cfx_facecache.cpp55
1 files changed, 3 insertions, 52 deletions
diff --git a/core/fxge/cfx_facecache.cpp b/core/fxge/cfx_facecache.cpp
index a3e58ff29c..3f037ac65a 100644
--- a/core/fxge/cfx_facecache.cpp
+++ b/core/fxge/cfx_facecache.cpp
@@ -35,48 +35,8 @@ namespace {
constexpr uint32_t kInvalidGlyphIndex = static_cast<uint32_t>(-1);
-constexpr int kMinPixel = 0;
-constexpr int kMaxPixel = 255;
-
constexpr int kMaxGlyphDimension = 2048;
-void ContrastAdjust(uint8_t* pDataIn,
- uint8_t* pDataOut,
- int nWidth,
- int nHeight,
- int nSrcRowBytes,
- int nDstRowBytes) {
- int max = kMinPixel;
- int min = kMaxPixel;
- for (int row = 0; row < nHeight; row++) {
- uint8_t* pRow = pDataIn + row * nSrcRowBytes;
- for (int col = 0; col < nWidth; col++) {
- int val = pRow[col];
- max = std::max(val, max);
- min = std::min(val, min);
- }
- }
- int diff = max - min;
- if (diff == kMinPixel || diff == kMaxPixel) {
- int rowbytes = std::min(abs(nSrcRowBytes), nDstRowBytes);
- for (int row = 0; row < nHeight; row++) {
- memcpy(pDataOut + row * nDstRowBytes, pDataIn + row * nSrcRowBytes,
- rowbytes);
- }
- return;
- }
- float rate = 255.f / diff;
- for (int row = 0; row < nHeight; row++) {
- uint8_t* pSrcRow = pDataIn + row * nSrcRowBytes;
- uint8_t* pDstRow = pDataOut + row * nDstRowBytes;
- for (int col = 0; col < nWidth; col++) {
- int val = static_cast<int>((pSrcRow[col] - min) * rate + 0.5);
- pDstRow[col] =
- static_cast<uint8_t>(pdfium::clamp(val, kMinPixel, kMaxPixel));
- }
- }
-}
-
struct UniqueKeyGen {
void Generate(int count, ...);
@@ -224,18 +184,9 @@ std::unique_ptr<CFX_GlyphBitmap> CFX_FaceCache::RenderGlyph(
}
} else {
memset(pDestBuf, 0, dest_pitch * bmheight);
- if (anti_alias == FXFT_RENDER_MODE_MONO &&
- FXFT_Get_Bitmap_PixelMode(FXFT_Get_Glyph_Bitmap(m_Face)) ==
- FXFT_PIXEL_MODE_MONO) {
- int rowbytes = abs(src_pitch) > dest_pitch ? dest_pitch : abs(src_pitch);
- for (int row = 0; row < bmheight; row++) {
- memcpy(pDestBuf + row * dest_pitch, pSrcBuf + row * src_pitch,
- rowbytes);
- }
- } else {
- ContrastAdjust(pSrcBuf, pDestBuf, bmwidth, bmheight, src_pitch,
- dest_pitch);
- }
+ int rowbytes = std::min(abs(src_pitch), dest_pitch);
+ for (int row = 0; row < bmheight; row++)
+ memcpy(pDestBuf + row * dest_pitch, pSrcBuf + row * src_pitch, rowbytes);
}
return pGlyphBitmap;
}