我的背景有一个非常奇怪的问题.当我将背景附件更改为固定在css中时,我的菜单中的字体因为某些我无法弄清楚的原因而变小.当我将其更改为滚动或本地时,它会恢复到所谓的大小.出现这种情况的原因是什么?
提供OP的示例:
我只在Safari(Chrome就可以)和只在某些机器上出现问题(MacBook Pros 15上可重现,非视网膜显示,但不适用于iMac和视网膜显示机).OSX:10.8.5,10.9.1 Safari版本:6.1.1,7.0.1.
不幸的是,我不能用jsfiddle重现这个问题,因为它不会发生在iframe中(iframe的内容会对它做出反应,但这强烈暗示了浏览器错误恕我直言).
以下是您可以在本地查看的示例HTML:
<html>
<body style="background-image: url(http://static4.depositphotos.com/1000419/321/v/950/depositphotos_3210195-Art-tree-beautiful-black-silhouette.jpg); background-attachment: fixed;">
<p style="font-family: Arial; font-size: 30px;">some fun text</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在检查器中选择正文标记并切换background-attachment规则.您将看到的是字体略有变化(更纤细/更大胆).
我想知道,这是多少问题以及哪些机器受到影响,这样问题最终可能会到达一些可怜的Apple开发人员... :)
有趣的事实:-webkit-transform: translateZ(0);可以用作解决方法.为什么它有效我不知道......
我写了一个函数来使用CGAffineTransformScale放大UIView.放大2倍后,所有文字看起来都很模糊.如果图像开始时分辨率较高,则图像正常.有没有办法在放大后以适当的分辨率重新渲染所有文本?
编辑: 我发现了我的问题的部分解决方案:http: //markpospesel.wordpress.com/2012/04/03/on-the-importance-of-setting-contentscalefactor-in-catiledlayer-backed-views/
- (void)didMoveToWindow {self.contentScaleFactor = 2.0; }
通过在UIView类别中添加上述方法,UILabel,UIButton和大多数其他视图现在以高分辨率呈现.但是,这不会影响UITextView或UIWebView.这两个视图中的任何一个中的文本仍然是模糊的.
所以新的问题是,放大后如何以高分辨率重绘UITextView或UIWebView?
Gecko和Webkit浏览器支持渲染连字符ff fi fl ffl via text-rendering: optimizeLegibility (字体必须有连字,例如Calibri).
MDN页面说,只有大小为20px及更高的文本才能获得连字.根据我自己的研究,这不是真的:
text-rendering: optimizeLegibility,Chrome(&Safari)将呈现连字;我在这里错过了什么吗?或者这只是MDN页面上的一个错误(过时?)我们应该修复它?
[编辑]补充阅读:粉碎杂志的"仔细看看字体渲染".
我花了很多时间使用Python制作我的第一个Web应用程序,并且我使用pil来生成图像.在阅读了很多内容之后,我设法实现了正确的文本对齐,包装,生成具有许多扩展的文件等.
但是,PIL生成的所有文本都在顶部被截断.这是一个样本.

它应该?Ó?jygpq用各种字体说(字体名称在左边).
我在这里找到了一些帖子:用PIL修剪字体,但我想避免使用另一个模块(aggdraw); 因为我已经在PIL中找到了很多东西,所以我想坚持下去.
我尝试了很多不同大小的字体,但文字仍然被切断了.我甚至尝试使用PIL字体,但它仍然无效.[还将OTF转换为BDF,并转换为PIL].
这是在Ubuntu上.我接下来应该尝试什么?
我正在尝试在我的项目中使用FreeType 2.4.11使用 openGL 渲染文本。
虽然我只初始化了一次库、面对并将charmap 设置为unicode。每次绘制的字符循环中使用 FT_Load_Char 和 glTexImage2D 都会将文本渲染速度减慢到不可接受的水平。
我需要一些正确的示例来说明如何在FreeType CacheSubSystem中缓存字形以避免渲染延迟
unicode的library、face、charmap一次性初始化如下
if(m_FontLibrary == NULL)
{
if(!FT_Init_FreeType(&m_FontLibrary))
{
if(!FT_New_Face(m_FontLibrary, "C:\\Windows\\winsxs\\amd64_microsoft-windows-f..etype-timesnewroman_31bf3856ad364e35_6.1.7601.17514_none_3b958c66aff6cdb7\\times.ttf", 0, &m_FontFace))
{
FT_Set_Pixel_Sizes(m_FontFace, 0, 48);
if(!FT_Load_Char(m_FontFace, 'X', FT_LOAD_RENDER))
{
m_FontGlyph = m_FontFace->glyph;
if(!FT_Select_Charmap(m_FontFace, FT_ENCODING_UNICODE))
{
loaded = true;
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在屏幕刷新率上,rendermodel函数调用DrawText函数,该函数循环遍历字符并加载字形并构造用于渲染的图像。
const char *text = "Tetrode\0";
const char *p;
for(p = text; *p; p++)
{
// Load a single glyph into the glyph slot of a face object, according to its character …Run Code Online (Sandbox Code Playgroud) 有可能从一个画Graphics2D到另一个Graphics2D吗?
让我解释。我已经打印问题,当我显示JTextArea或JTextPanel屏幕,internaly其使用sun.java2d.SunGraphics2D,但是当IM打印的使用sun.print.PeekGraphics和sun.awt.windows.WPathGraphics。问题出在某种字体上,例如Arial。在某些尺寸下,线被切掉。我已经tryed了很多办法来呈现在印刷文本,Graphics2D.drawString,SwingUtilities2.drawString,TextLayout.drawString,但在某些情况下,线依然切割,或线不被切断,但某种理由让disapear空格。
因此,我的想法是尝试使用sun.java2d.SunGraphics2D渲染组件,然后通过sun.print.PeekGraphics或将表面“复制”到打印机sun.awt.windows.WPathGraphics。
提前致谢。
我正在尝试使用绘制一些文本TextRenderer(因为这有利于使用Graphics.DrawString)到Bitmap,但是它具有一些非常不良的效果。
范例程式码
using (Bitmap buffer = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb))
{
using (Graphics graphics = Graphics.FromImage(buffer))
{
// Produces the result below
graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
// Produces clean text, but I'd really like ClearType!
graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
TextRenderer.DrawText(graphics, "Hello World", this.Font, this.ClientRectangle, Color.Black);
}
e.Graphics.DrawImageUnscaled(buffer, this.ClientRectangle);
}
Run Code Online (Sandbox Code Playgroud)
结果

我不确定该如何解决...帮助!
我不想使用,Graphics.DrawString因为我想要正确的GDI(而不是GDI +)渲染。
注意:我刚刚意识到,我在这个问题上留下了一个空白。有人指出,呈现ClearType文本在他们的机器上可以正常工作...
我正在尝试将文本呈现为透明(Color.Transparent)位图。如果我用纯色做,一切正常!(但是我必须渲染为透明的位图)。
我无法将一些字符串渲染代码放在一起,这些代码可以为我提供所有目标.到目前为止,只能权衡利弊.
我正在拍摄一些行为与Windows7桌面快捷方式相同的方式,因为文本上方有一个图像,文本可以包装一次,任何更多的椭圆截断.
如:

我使用TextRenderer.DrawText,我已经试过的各种组合TextFormatFlags,但我只能得到任何一个包装无限期文本,或停在一个单一的线路之间,其省略号文本.
一些例子.提供给界限TextRenderer是,在所有情况下,的边界内ClipRectangle,其中我画的表面.它试图呈现的文本是"这是一个名为#1的组的相当长的名称.".
这段代码:
TextFormatFlags flags = TextFormatFlags.HorizontalCenter |
TextFormatFlags.NoPadding | TextFormatFlags.WordBreak |
TextFormatFlags.EndEllipsis;
Rectangle rect = new Rectangle(x, y, this.Width - 6, this.Height - y);
TextRenderer.DrawText(e.Graphics, _text, Font, rect, _textColor, flags);
Run Code Online (Sandbox Code Playgroud)
...产生这个:

只需删除TextFormatFlags.WordBreak标志就会产生:

我怎么能这样做,比如我尽可能在RectangleI pass 的范围内进行包装,然后在发生截断时结束椭圆?
有时,我的网页上的文字会被一个字符(在Chrome中)关闭,我在下面附上了几张图片来复制问题.我可以通过本页获得最多成功来重现此错误:http://identity-dev.github.io/id-bower/docs/
对
错误
注意:"Type"变为"Sxod","Kit"变为"Jhs"
它似乎也保留了原始宽度,所以它就像它知道那里应该有什么字符.
编辑已添加的字体代码:
@font-face{
font-family: "Proxima";
src: url('#{$font-path}/proxima-nova.eot' + '?#iefix');
src: url('#{$font-path}/proxima-nova.svg') format("svg"),
url('#{$font-path}/proxima-nova.eot' + '?#iefix') format("eot"),
url('#{$font-path}/proxima-nova.woff') format("woff"),
url('#{$font-path}/proxima-nova.ttf') format("truetype");
font-weight: normal;
font-style: none;
}
Run Code Online (Sandbox Code Playgroud) 我想对应用程序中的所有文本使用本机渲染。对于每个Text,Label等等元素,我可以执行此操作
Text {
renderType: Text.NativeRendering
}
Run Code Online (Sandbox Code Playgroud)
触发本机渲染。我还可以在整个应用程序中使用软件渲染器:
QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software);
Run Code Online (Sandbox Code Playgroud)
但是,由于软件渲染器存在一些错误以及一些性能问题,我想避免这种情况。
是否有全局开关可以更改渲染类型?