标签: text-rendering

IE 9在某些条件下不使用子像素抗锯齿

[原标题:IE 9文字渲染效果很差; 有解决方法吗?)

IE 9正在渲染我的应用程序中的文本非常糟糕.问题不在我的显示器的清除类型设置中,因为兼容模式下的IE 9,Firefox和Chrome都能很好地呈现文本.以下是对IE 9,兼容模式下的IE 9和Chrome进行文本渲染的并排比较:

IE 9

IE 9兼容模式

在此输入图像描述

我尝试应用这个答案,但它似乎不适用于IE 7后的任何内容.有人知道我们可以应用于我们的网站来修复IE 9的坏文本呈现的任何变通方法吗?

编辑:

我把问题页面简化为最基本的要点.正如您所看到的,重现并不需要太多.如果IE9和IE9标准的文档模式,请确保IE具有浏览器模式:

<html xmlns="http://www.w3.org/1999/xhtml">
  <body style="background-color: rgb(30, 34, 59); color: rgb(255, 85, 0); font-size: 20px">
    Home
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

antialiasing text-rendering cleartype internet-explorer-9

16
推荐指数
2
解决办法
1万
查看次数

在PyGame中,梵文文本渲染不正确

我们有一个小型的网络应用程序,我们想要转换成原生的东西.现在,它有很多移动部件(后端,浏览器等),我们想把它转换成一个紧凑的应用程序.我们决定使用PyGame来做到这一点,除了字体渲染问题之外它一直很好.

我想呈现的字符串是कोझिकोड.这,正确呈现看起来像正确渲染.

具体的代码点是\ u0915\u094b\u091d\u093f\u0915\u094b和\ u0921

现在,这在我的编辑器和浏览器中看起来很好但是当我尝试在PyGame中渲染时,我得到了这个 错误地渲染.基本上,元音符号(\ u093fÇ)应该位于left的左侧,但它看起来在它的右侧(并且在क的左侧),从而完全弄乱了它.这不会发生在浏览器或文本编辑器(具有相同的输入字符串)中,因此我猜测它是PyGame中的渲染器问题.

有一个原始修复只适用于这种特殊情况,即将Ç(\ u093f)置于झ(\ u091d)之前.在这种情况下,它会像这样正确呈现原油修复.这依赖于我对语言的了解并将该逻辑放入代码中.我必须在这里处理多种语言,所以这不可行.

我对unicode没有太多经验,所以我不知道如何解决这个问题.有什么我可以做的来解决这个问题吗?

如果它很重要,我正在使用Debian上的freesans字体,并且它具有必要的字形来呈现它.

更新: 实际呈现此代码的代码如下

# -*- coding: utf-8 -*-
import time

import pygame

# Pygame setup and create root window
pygame.font.init()
screen = pygame.display.set_mode((320, 200))
empty = pygame.Surface((320, 200))


font_file = pygame.font.match_font("freesans")  # Select and
font = pygame.font.Font(font_file, 30)          # open the font
writing = font.render(u"???????  ???????", True, (0, 0, 0))  # Render text on a surface
screen.fill((255, 255, 255)) # Clear the background
screen.blit(writing, …
Run Code Online (Sandbox Code Playgroud)

python unicode pygame text-rendering devanagari

13
推荐指数
2
解决办法
510
查看次数

如何在CALayer支持的文本中处理不良文本呈现

NSTextFieldCALayer背景视图中呈现了一些可变文本.由于CALayer不支持对其上方任何文本进行文本呈现的子像素别名,因此该文本看起来很垃圾.

一些谷歌搜索揭示了原因,并且必须将文本渲染到不透明的背景上才能启用SPA.在这种情况下,如果可能的话,我想避免渲染到不透明的背景上.有更好的解决方法吗?

我完全可以将自己的文本呈现为NSImage,如果这会有所帮助,但我找不到任何已确认的报告.

它在Interface Builder中看起来非常好,所以我知道秘密就在这台计算机内的某个地方,只是为了摆脱困境.

core-animation objective-c text-rendering

10
推荐指数
1
解决办法
4154
查看次数

IE文本渲染渐变

IE 8及更低版本渲染文本,如果它超过任何应用了"过滤器"的元素.没有什么比这更令人惊讶的了.我通常只是避免使用"过滤器".但是,我在IE9中做了一些测试,我注意到了一个巨大的问题; 在应用了css3渐变或框阴影的任何元素上渲染的文本,文本渲染将被销毁.不仅是直接在元素顶部的文本,而且在z-index中的每个元素都在渐变之上.例如,如果我使用渐变定义页面的背景,将其覆盖在纯白色div中,然后在其上面渲染文本,它仍然很糟糕.我真的希望这只是一个测试版问题,将在最终版本中解决.我一直在使用这里的代码,对于渐变一段时间(减去过滤器),但现在在IE9中使用这种技术的所有页面看起来都很糟糕.有谁知道这件事 - 当我用Google搜索时,我找不到任何关于这个问题的信息.

internet-explorer filter text-rendering css3 internet-explorer-9

10
推荐指数
1
解决办法
995
查看次数

Java可以使用子像素AA渲染半透明文本吗?

我发现虽然在Java中渲染不透明文本(最新版本6u23)使用子像素AA就好了,渲染半透明文本却没有.

子像素AA:

替代文字 替代文字

只有颜色从0xFFFFFFFF变为0xBFFFFFFF的相同文本:

替代文字 替代文字

正如你所看到的,半透明文字显然是标准AA,而不是干净的半透明渲染,它具有可怕的'90年代"蜘蛛"外观.

这是由于一般的子像素AA的技术限制,还是Java中的错误,还是因为Java甚至没有尝试半透明文本,或者我错过了什么?


图形初始化

dbGraphics=(Graphics2D)dbImage.getGraphics();
if(dctRoot.properties.getBoolean("Antialias",true)) {
    try {
        Map hnts=(Map)(dctRoot.awtComponent.getToolkit().getDesktopProperty("awt.font.desktophints"));

        // SET AA ON OVERALL (NOTE: GENERAL AA MUST BE OFF FOR SUBPIXEL AA TO BE HONORED - TEXT WIDGETS MUST DO THIS THEMSELVES)
        dbGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);

        if(hnts!=null) {
            // SET FONT RENDERING HINTS FROM DESKTOP
            dbGraphics.addRenderingHints(hnts);
            }
        else {
            try {
                // SET TEXT AA TO FONT-SPECIFIED GASP AA (JAVA 6+)
                dbGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.class.getField("VALUE_TEXT_ANTIALIAS_GASP").get(null));
                }
            catch(Throwable thr3) {
                // SET TEXT AA TO DEFAULT
                dbGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
                }
            }
        }
    catch(Throwable thr) …
Run Code Online (Sandbox Code Playgroud)

java text-rendering

10
推荐指数
1
解决办法
959
查看次数

使用Freetype2进行OpenGL字体渲染

我正在尝试使用OpenGL渲染freetype字体,遵循http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_Text_Rendering_02上发布的示例.

我已经能够从字体生成纹理图集,创建着色器和创建四边形.我似乎被困在的是将纹理传递到着色器和/或为我的四边形获得正确的UV.现在一直在努力,真的需要帮助.

以下是我用来创建纹理图集的结构.

struct FontCharacter
    {
        float advanceX;
        float advanceY;

        float bitmapWidth;
        float bitmapHeight;

        float bitmapLeft;
        float bitmapTop;

        float uvOffsetX;
        float uvOffsetY;
    };

    struct FontTextureAtlas
    {
        GLuint texture;
        GLuint textureUniform;

        int width;
        int height;

        FontCharacter characters[128];

        FontTextureAtlas(FT_Face face, int h, GLuint tUniform)
        {
            FT_Set_Pixel_Sizes(face, 0, h);
            FT_GlyphSlot glyphSlot = face->glyph;

            int roww = 0;
            int rowh = 0;
            width = 0;
            height = 0;

            memset(characters, 0, sizeof(FontCharacter));

            for (int i = 32; i < 128; i++)
            {
                if …
Run Code Online (Sandbox Code Playgroud)

opengl textures glsl freetype text-rendering

9
推荐指数
1
解决办法
7365
查看次数

什么是最难呈现的 Unicode 样本?

我正在尝试实现一个跨平台(桌面浏览器、iOS 和 Android)排版系统,允许用户输入任何 Unicode 字符串。

我应该使用哪些字符串来对我的系统进行压力测试并确保最多9位用户拥有良好的体验?是否有我也可以使用的标准或事实上的标准列表?

unicode stress-testing text-rendering

9
推荐指数
1
解决办法
2179
查看次数

Windows Creator版本更新后,QHD/4K屏幕上的ExtTextOutW x50性能下降

出于某些奇怪的原因,调用WinAPI的ExtTextOutW函数在高分辨率位图(2560x1440/3840x2160)上绘制剪切文本会在使用Creators版本更新更新Windows 10后导致性能降低~x50.从我的用户的测试和调试日志中可以看出,位图或字体大小的细微差别可能会触发性能损失.

这是一个显示性能命中的调试日志:

10/05/2017 15:51:50 [   63227,186] : Calculate Rect
10/05/2017 15:51:50 [   63227,190] : Rect : Left=263, Top=504, Right=3561, Bottom=2155
10/05/2017 15:51:50 [   63227,193] : Set Shadow Color
10/05/2017 15:51:50 [   63227,198] : Render Text Shadow
10/05/2017 15:51:50 [   63236,650] : Set Text Color
10/05/2017 15:51:50 [   63236,661] : Render Text "Kingdom come Deliverance"
10/05/2017 15:51:50 [   63246,062] : Rendering complete
Run Code Online (Sandbox Code Playgroud)

从日志中可以看出,对ExtTextgOutW的单次调用需要大约9.5ms,而同一次调用在创建者更新之前的1ms内完成.

以下是您可以与上面的调试输出进行比较的实际代码:

  {$IFDEF TEXTRENDERTRACE}DebugMsgFT('c:\log\.TextRender.txt','Calculate Rect');{$ENDIF}
  cRect    := Rect(X,Y,Width+X,MainForm.Monitor.Height-(1+(MainForm.Monitor.Height div 540)));
  {$IFDEF TEXTRENDERTRACE}DebugMsgFT('c:\log\.TextRender.txt','Rect : Left='+IntToStr(cRect.Left)+', Top='+IntToStr(cRect.Top)+', Right='+IntToStr(cRect.Right)+', Bottom='+IntToStr(cRect.Bottom));{$ENDIF}
  {$IFDEF …
Run Code Online (Sandbox Code Playgroud)

windows delphi winapi high-resolution text-rendering

9
推荐指数
1
解决办法
372
查看次数

Firefox字体表面渲染与Chrome相似

@font-face在CSS 中遇到了麻烦.我使用的字体在每个浏览器中看起来都非常不同.

在Firefox中查看此示例:

火狐

在Chrome中:

铬

我不知道是什么原因引起了这个问题.我已经尝试使用text-rendering,我也尝试url@font-face声明中更改-properties 的顺序.

我使用的是Windows 7 Professional和Firefox V30.

有人可以告诉我这个问题的原因,并告诉我如何解决它?

非常感谢.

//编辑:这是@font-face我正在使用的声明:

@font-face {
    font-family: 'MyFont';
    src: url('myFont.eot');
    src: url('myFont.eot?#iefix') format('embedded-opentype'),
        url('myFont.svg#myfont') format('svg'),
        url('myFont.woff') format('woff'),
        url('myFont.ttf') format('truetype');
    font-style: normal;
    font-weight : normal;
}
Run Code Online (Sandbox Code Playgroud)

正如我上面所写,我已经按照这个命令的顺序玩了.

在我的特定问题中,您可以看到此页面(页脚)显示问题.

css firefox text-rendering

8
推荐指数
1
解决办法
1858
查看次数

'ASAP'和'UBUNTU'谷歌字体突然变形

过去几年我们一直在Web应用程序中使用ASAP字体而没有任何问题.突然间,我们开始使用'ASAP'谷歌字体注意畸形.它们仅在使用字体呈现<16px字体大小时发生."Ubuntu"字体也出现了同样的问题.

有谁知道造成这些问题的原因是什么?

我们已经注意到这些问题:操作系统的Win10,MacOS上的IE11,最新的Chrome,Edge,Firefox,Safari.

例-1 例如-2

fonts text-rendering google-font-api

8
推荐指数
1
解决办法
240
查看次数