Re: 2.10.3 BW renderer changes
Davide Rizzo <[email protected]> Wed, 11 Jan 2023 09:29:27 +0100
| Newsgroups | gmane.comp.fonts.freetype.user |
|---|---|
| Organization | Eidos |
| Message-ID | <[email protected]> |
Hi, You're right. I wrote a very simple test program to evidence the difference in the output. I attach the program, the font we use (a standard arial.ttf) and the different outputs I obtain at size 58. With freetype up to 2.10.2 I obtain the desired nice bitmap, with freetype since 2.10.3 (including the last 2.12.1) I obtain a different bitmap. My question is if it's possible with some parameter to obtain the "old" bitmap with freetype 2.12.1. Thank you Davide Rizzo Il 10/01/23 00:03, Alexei Podtelezhnikov ha scritto: > Davide, > >> The new output is much worse, most of chars have single dots protruding > in the external outline. > > We won't be able to help you unless you help us to reproduce or see > the issue. At the very least you should name the font and the size, > and give a screenshot. Also, in our mind, only bugs in 2.12.1 are > worth fixing. You should try this most recent version in case it is > fixed already. There could be other software that disabled the hinting > too. Therefore, we prefer that you show the issue using freetype demos > like ftview or ftgrid. > > Does this make sense? Your report does not have any details. You can > use https://gitlab.freedesktop.org/freetype/freetype/-/issues once you > have mode details. > > Can you help us to help you? > > Alexei
test-freetype.cpp
(text/x-c++src, 1.7 KB)
//============================================================================
// Name : test-freetype.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include "ft2build.h"
#include "freetype/freetype.h"
#include FT_RENDER_H
#include "stdio.h"
int main(int argc, char **argv)
{
int major, minor, patch, sz = 100;
if(argc == 2)
sz = atoi(argv[1]);
FT_Library library;
FT_Face face;
FT_StreamRec_ ft_st = { nullptr, 0, 0, {-1}, {0}, nullptr, nullptr, nullptr, nullptr, nullptr };
FT_Open_Args ft_oa = { FT_OPEN_PATHNAME, nullptr, 0, (FT_String *)"/usr/fonts/arial.ttf", &ft_st, 0, 0, nullptr };
FT_Init_FreeType(&library);
FT_Open_Face(library, &ft_oa, 0, &face);
FT_Library_Version(library, &major, &minor, &patch);
FT_Set_Charmap(face, face->charmaps[0]);
FT_Set_Pixel_Sizes(face, sz, sz);
FT_Load_Char(face, 'e', FT_LOAD_DEFAULT | FT_LOAD_TARGET_LIGHT | FT_LOAD_MONOCHROME | FT_LOAD_NO_BITMAP);
FT_Render_Glyph(face->glyph, FT_RENDER_MODE_MONO);
printf("Freetype V.%d.%d.%d - size:%d\n", major, minor, patch, sz);
unsigned int row, column;
for(column = 0; column < face->glyph->bitmap.width; column++)
printf("--");
printf("\n");
for(row = 0; row < face->glyph->bitmap.rows; row++)
{
for(column = 0; column < face->glyph->bitmap.width; column++)
printf((0x80 >> (column & 0x7)) & face->glyph->bitmap.buffer[row * face->glyph->bitmap.pitch + column / 8] ? "XX" : " ");
printf("\n");
}
for(column = 0; column < face->glyph->bitmap.width; column++)
printf("--");
printf("\n");
FT_Done_Face(face);
FT_Done_FreeType(library);
return 0;
}
render-differences.txt
(text/plain, 3.9 KB)
root@xto-N00001:~# /tmp/test-freetype2 58
Freetype V.2.10.2 - size:58
--------------------------------------------------------
XXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXX XXXXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXX XXXXXXXXXX
XXXXXXXXXX XXXXXXXXXX
XXXXXXXXXX XXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXX XXXXXXXX
XXXXXXXXXXXX XXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXXXXXX XXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXX
--------------------------------------------------------
root@xto-N00001:~# /tmp/test-freetype2 58
Freetype V.2.12.1 - size:58
--------------------------------------------------------
XX
XXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXX XXXXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXX XXXXXXXXXX
XXXXXXXXXX XXXXXXXXXX
XXXXXXXXXX XXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXX XXXXXXXX
XXXXXXXXXXXX XXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXXXXXX XXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXX
XX
--------------------------------------------------------
arial.ttf
(font/ttf, 285.8 KB) - not displayed