我有一个加载图像的应用程序,当用户单击它时,会为此图像显示一个文本区域(使用jquery),用户可以在其中写一些图像。应该在图像上添加。
在对其进行了一些研究之后,我发现PIL
(Python Imaging Library)可以帮助我做到这一点。因此,我尝试了几个示例以了解其工作原理,并设法在图像上写了文字。但是我认为Python Shell在Web环境中使用和尝试时会有一些区别。我的意思是textarea上的文本以px为单位很大。使用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添加文本区域。文本区域也是position:绝对大小和固定大小。
我应该将其放置在表单中以便在图像上获取文本区域的坐标吗?我想在用户单击时在图像上写文本并将其保存在图像上。
我认为其中提供的ImageFont模块PIL应有助于解决文本字体大小问题。只需检查哪种字体类型和大小适合你,然后使用以下功能更改字体值即可。
# font = ImageFont.truetype(<font-file>, <font-size>)
# font-file should be present in provided path.
font = ImageFont.truetype("sans-serif.ttf", 16)
因此,你的代码将类似于以下内容:
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
img = Image.open("sample_in.jpg")
draw = ImageDraw.Draw(img)
# font = ImageFont.truetype(<font-file>, <font-size>)
font = ImageFont.truetype("sans-serif.ttf", 16)
# draw.text((x, y),"Sample Text",(r,g,b))
draw.text((0, 0),"Sample Text",(255,255,255),font=font)
img.save('sample-out.jpg')
你可能需要花费一些额外的精力来计算字体大小。如果要根据用户在中提供的文本量进行更改TextArea
。
要添加文本换行(多行的东西),只需大致了解一行中可以包含多少个字符,然后就可以为Text编写预处理功能,该函数基本上可以找到每行中最后一个字符,将此字符之前的空格转换为换行符。
问题内容: 我尝试在图像的底部添加文本,实际上我已经完成了,但是如果我的文本较长,那么图像的宽度要从两侧切开,为简化起见,我希望文本在多行中长于图片宽度。这是我的代码: 问题答案: 您可以用来分解成字符串列表,每个字符串最多为字符:
问题内容: 在我的项目中,我使用iText生成PDF文档。 假设页面的高度为500pt(1个用户单位= 1点),并且我在页面上写了一些文本,然后是图像。 如果内容和图像要求小于450pt,则文本在图像之前。如果内容和图像超过450pt,则文本将转发到下一页。 我的问题是:在写图像之前如何获得剩余的可用空间? 问题答案: 首先,第一件事:在页面上添加文本和图像时,iText有时会更改文本内容和图像的
更新: 我得到以下错误: ...newimg1.save(“img1.png”)文件“C:\python27\lib\site-packages\pil\image.py”,第1439行,在save save_handler(self,fp,filename)文件“C:\python27\lib\site-packages\pil\pngimageplugin.py”中,第572行,在_save
问题内容: 我刚刚使用Python图像库(PIL)进行了一些图像处理,这是我之前发现的用于执行图像的傅立叶变换的文章,但是我无法使用save函数。整个代码运行良好,但不会保存生成的图像: 我得到的错误如下: 如何使用Pythons PIL保存图像? 问题答案: 已解决有关文件扩展名的错误,您可以使用(不带点)或将输出名称与扩展名一起传递。现在要处理该错误,您需要在频域中适当地修改数据以将其保存为整
问题内容: 我正在使用PIL库进行一些图像编辑。关键是,我不想每次都将图像保存在HDD上以在资源管理器中查看它。是否有一个小模块可以使我设置窗口并显示图像? 问题答案: 从PIL教程中: 一旦有了 Image 类的实例,就可以使用该类定义的方法来处理和操纵图像。例如,让我们显示刚刚加载的图像: 更新: 如今,该方法已正式记录在PIL的Pillow分支中,并说明了如何在不同的OS上实现该方法。
问题内容: 我正在尝试使用HTML中的新canvas元素。 我只是想将图像添加到画布,但是由于某种原因它不起作用。 我有以下代码: 的HTML 的CSS JS 图片存在,并且没有JavaScript错误。该图像只是不显示。 这一定是我错过的非常简单的事情… 问题答案: 也许您应该等到图像加载后才能绘制图像。尝试以下方法: 即在图像的onload回调中绘制图像。