问题标签 [drawtext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3708 浏览

android - Android 画布中的平滑非常缓慢的文本动画,SUBPIXEL_TEXT_FLAG 不起作用

我无法在 Canvas 中实现平滑非常缓慢的文本动画,因为Canvas.drawText不想在“像素之间”绘制。例如,给定 4 个连续帧,其中我绘制 Y 偏移量为 0、0.5、1、1.5 的文本,画布实际上将分别在偏移量 0、0、1、1 处绘制它,这导致动画为“生涩”。有一个名为Paint.SUBPIXEL_TEXT_FLAG应该保持浮点精度的标志。

我找到了一个相关线程,其中 Romain Guy 说 Android 目前不支持此标志:Android中某些 Paint 常量的含义

我的问题是:是否有任何现有的解决方法?

注意:在另一个位图中绘制一次文本,然后用浮点偏移量绘制这个位图而不是绘制文本似乎也不起作用。

0 投票
2 回答
7795 浏览

c++ - QPainter::drawText,获取每个字符的边界框

我正在使用 QPainter 在 QImage 上绘制多行文本。但是,我还需要在每个字符的边界框周围显示一个彩色矩形。

所以我需要知道每个角色在绘制时的边界框。

例如,对于

考虑到换行符、自动换行、制表符等,我需要得到 10 个矩形。

例如,第二个'l'的矩形将在第一个的矩形下方'l',而不是在 的右侧'e',因为换行符。

类似于这张图片中红色矩形的坐标(我是手工放置的,所以它们并不是真正的正确位置):

在此处输入图像描述

0 投票
1 回答
3964 浏览

android - 如何在android中的指定矩形中绘制文本?

有没有一种方法可以在指定的矩形中绘制文本?我正在使用直接绘制到画布(ImageView)

但这将整个文本绘制在一行中。我想用指定的 (x,y) ,(x1,y1) 限制来包装文本。我不想使用 textviews 或任何其他视图。

我只想在图像上绘制文本。

有什么方法可以做到这一点吗?

提前致谢

0 投票
1 回答
1254 浏览

java - 如何将文本渲染到位图并绘制它

我是 android 新手,我的小组目前正在使用 opengl es 2.0 使用 GlSurfaceView 创建一个图形应用程序。

我们最近在绘图上显示了网格和刻度线,现在我被分配了实现数字刻度并将 x 和 y 轴标记为“X”和“Y”的任务。

在此处输入图像描述

经过大量研究后,我决定通过将一串字符渲染为位图来实现这一点。我在实现这一目标时遇到了很多问题。我了解基本概念。我知道我需要字母数字字符“0123456789”和“XY”和“-”(用于 -x 和 -y 刻度)。我已经看到了许多不同的例子,并在这里广泛尝试遵循 JVitella 的例子

我开始掌握这个概念,但就我的字符串而言,我知道我有 13 个字符,那么我的位图应该有多大?

同样在 Jvitelas 示例中,我对代码感到目瞪口呆:

我不明白到底发生了什么,当我编写代码时,我在上下文中收到语法错误。

对于我的应用程序,我知道我需要将字符串保存到一个位图中,就像这样。我会创建一个位图,但它应该有多大?然后我从位图和 canvas.drawText 创建一个画布到位图中。

基本上我在问:

  • 如何实现上面的以下位图?
  • 我将如何从位图中绘制单个数字?
  • 我将如何绘制多于一位的数字?
0 投票
1 回答
4080 浏览

ios - iOS:使用 LineWidth 1px 在 UIView 上绘制文本

我有一个场景,我必须在 UIView 上绘制文本。我的代码是

使用此代码,我可以实现:

在此处输入图像描述

但是,由于我使用的 FontSize 为 500,因此文本 lineWidth 很大。我想将 lineWidth 减小到 1px。

请就如何实现这一目标提出建议。

  • 除了常规的,还有其他方法吗drawInRect
  • CoreText 会帮我找到解决方案吗

谢谢。

编辑

使用 UIBezierPath 作为字形,我能够得到字符的路径。但是实现的路径是通过角色的边界。因此,我得到的文本为:

在此处输入图像描述

这可以做成单行吗?

0 投票
1 回答
1300 浏览

android - Canvas.drawText 导致文本重叠

我正在尝试在同一位置绘制不同的文本。我正在以下代码中创建字体和绘制对象并绘制文本。它工作正常直到这里。它使用我指定的字体绘制文本。但是当我绘制文本时另一次在同一位置它与较早的文本重叠。

知道如何删除较早的文本并将新文本添加到相同的位置。

0 投票
1 回答
1496 浏览

ffmpeg - ffmpeg 将 4 个视频多路复用为 1 和 drawtext 问题

我有四个视频,我想将它们多路复用成一个视频,并将文本放在每个象限的左上角。我可以成功混合视频,使得 vid1 在左上角,vid2 在右上角,vid3 在左下角,vid4 在右下角。

但是,我什至无法使用 drawtext 命令显示简单的文本。

我想将原始视频文件的名称放在每个象限中。

目前我的命令是这样的:

如果我删除 drawtext 命令,我会得到相同的结果:不错的 4-Up 视频,但没有文本。我的假设是,对于其他象限,我会在输入流中添加另一个 drawtext 命令#,例如

任何帮助表示赞赏!

0 投票
1 回答
1353 浏览

python - 将电影文件与文本文件合并

当前状态:我有一部在显微镜上录制的电影和一个包含两列的 .txt 文件:时间和温度。该文件与视频同步。我想“编辑”视频,所以有一个文本框,温度会随着电影的播放而更新。

目前,我的方法是使用ffmpeg. 我设法画了一些文字,似乎一切都按预期工作。

问题是:我找不到有关如何动态更新该文本的任何参考。我正在使用一些 Python 来读取文件并ffmpeg使用subprocess启动。

我想问是否有人知道一些解决方法。也许其他一些方法。

0 投票
3 回答
5099 浏览

android - Nexus 7 上的 Android 4.2:canvas.drawText() 无法正常工作

我的应用程序面临一个严重的问题,该应用程序发布在 Google Play 上,显然在除 > 4.0 之外的所有版本的 Android 上都可以正常工作。

这是我的 Android 4.0 HTC 手机的屏幕截图:

在此处输入图像描述

这就是我在 Nexus 7、Android 4.2.1 上得到的(在模拟器中的行为相同):

在此处输入图像描述

我看到使用绘制的每个文本都有相同的行为canvas.drawText()

用于绘制文本的 Paint 是:

在 logCat(4.2.1 模拟器)中,我看到了很多

我在清单中使用这些设置:

0 投票
5 回答
2029 浏览

android - 在视图画布上绘制文本时文本颜色太深

我使用以下代码在视图画布上绘制文本:

问题:

文本以深灰色而不是白色 (0xFFFFFFFF) 显示。为什么这样?

我尝试使用 setShadowLayer() 或 paint.setAntiAlias(false) 来解决问题,不幸的是没有成功。