0

我确实找到了一个类似的主题,但不知道解决方案是否相同。所以这是我的问题:

我正在使用 GD 功能来制作一个网络卡片生成程序。问题是卡片的背景是由$image = imagecreatefrompng();函数生成的。卡片还需要$cardname作为“标题”和$desription作为描述。为此,我使用了该imagettftext();功能。但是有一个问题,卡片的大小是333x485,我需要调整文本的大小以适应背景而不调整它的高度,而只调整宽度!

更重要的是,$cardname应该有width = 240and height = 34,但如果它不适合,它就会离开背景,我需要一个函数来调整其宽度以适应 240px 并将高度始终保持为 34px!

要了解更多请看这里:http: //yugiohcardmaker.net。在“名称”中,您可以添加任意数量的文字,它始终适合并具有正确的宽度和高度!

4

1 回答 1

1

我不会尝试编写此代码,因为它会花费太长时间,但这是基本过程:

  1. 使用 imagettfbbox() 获取文本边界框的大小;

  2. 使用 imagecreatetruecolor() 创建新图像;

  3. 使用 imagettftext() 将文本写入新图像;

  4. 使用 imagecopyresampled() 将带有文本的新图像复制到现有卡片,设置参数以缩小宽度而不是高度。

注意:返回的边界框参数imagettfbbox())可能很难使用。您还需要注意 alphablending 和背景颜色,以确保仅复制文本像素。

祝你好运!

于 2013-09-11T00:19:44.180 回答