我有一个加载图像的应用程序,当用户单击它时,会出现此图像的文本区域(使用jquery
),用户可以在其中在图像上写入一些文本。应该添加到图像上。
在做了一些研究之后,我认为PIL
(Python Imaging Library)可以帮助我做到这一点。所以我试了几个例子来看看它是如何工作的,我设法在图像上写下了文字。但我认为当我在使用Python Shell
和web环境中尝试时,会有一些不同。我是说文本区的文本在px中很大。当使用PIL作为文本区域上的PIL时,如何获得相同大小的文本?
文本是多行的。如何在图像中使用PIL
使其多行?
有没有比使用PIL更好的方法?我不完全确定这是否是最好的实现。
html格式:
<img src="images/test.jpg"/>
这是正在编辑的图像
var count = 0;
$('textarea').autogrow();
$('img').click(function(){
count = count + 1;
if (count > 1){
$(this).after('<textarea />');
$('textarea').focus();
}
});
添加文本区域的jquery。 文本区域也是位置:绝对和固定大小。
我应该把它放在一个表格里,这样我就能得到图像上文本区域的坐标吗? 我想在用户单击并保存到图像上时在图像上写入文本。
我认为
PIL
中提供的ImageFont模块应该有助于解决文本字体大小问题。只需检查适合您的字体类型和大小,并使用以下函数更改字体值。所以你的代码看起来类似于:
您可能需要付出额外的努力来计算字体大小。如果您想根据用户在
TextArea
中提供的文本量更改它。要添加文本换行(多行文字),只需大致了解一行中可以包含多少个字符,然后您就可以为文本编写预处理函数,基本上可以找到每行中最后一个字符,并将该字符前面的空格转换为新行。
您可以在项目的根目录中创建一个“字体”目录,并将字体(sans-serif.ttf)文件放在其中。然后你可以做这样的东西:
更简单的例子(画“HelloWorld!”以黑色显示,默认字体位于图像左上角):
相关问题 更多 >
编程相关推荐