gpt4 book ai didi

android(高级)使用 DrawText 保存位图 Canvas 但需要计算文本大小

转载 作者:行者123 更新时间:2023-11-29 00:46:09 25 4
gpt4 key购买 nike

我有一个可以在上面绘制文本的 Canvas 。
(这是相当先进的,我想希望你能跟随我)

见下图。

功能是我可以点击屏幕来更改文本大小。
点击左侧屏幕 = 较小的字体。
点击右屏幕 = 更大的字体。
然后我还可以在屏幕上移动文本。

当 textsize 正常并且我已经将文本移动到我想要的位置时,
然后我想把它存回原来的Bitmap。

我使用 options.inSampleSize = 4; 来初始加载 Bitmap

具有位图的 ImageView 当然比原始图像小。
需要某种计算。这往往很难做到。

我有 options.inSampleSize = 4 位图比率。
它是 0.59、0.69,具体取决于横向或纵向。

我正在尝试以某种方式改变新的位图setTextSize
看起来与 ImageView 较小的位图相同。

我能在这里做什么?
我有一种感觉,因为人们永远不知道图像有多大。
我必须以某种方式将加载位图比率缩放/限制为固定比率。

然后我需要使用百分比或其他东西来转移文本位置到更大的形象。
当涉及到初始时,我可以这样做(图片上的红色小球)位置。因此,文本的起点。

但是我不知道文字有多长,所以我卡住了,所以就说吧,求教

我尝试的一种方法是将 paint.getTextSize() 与比率相除,例如 0.59。起初这看起来像是一个解决方案。但是图像比例不固定,字体大小不固定,还需要其他东西。

这是显示问题的两张图片。

在手机位图上:

enter image description here

保存的新位图:

enter image description here

最佳答案

我不是 100% 清楚我明白你的意思,但可以试试。听起来你接近正确的方法了。不是使用固定比例,而是需要计算图像缩放比例以适应手机 View ,然后您可以按反比例缩放文本。所以在步骤中:

  • 测量原始图像的宽度(高度也可以,但我们只需要一维)
  • 测量缩放图像的宽度
  • 计算比率(ratio = original/scaled)
  • 让用户输入他们的文本
  • 然后您可以使用类似以下方法获取文本大小:float paintSize = paint.getTextSize();
  • 要在最终图像上进行渲染,请使用 paint.setTextSize(paintSize/ratio);

关于android(高级)使用 DrawText 保存位图 Canvas 但需要计算文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com