- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
好的,我正在运行 CentOS 服务器、PHP 5.4.440 和 ImageMagick 6.5.4,并且我正在尝试添加其他字体,例如 Lobster。这是我到目前为止所做的:
上传 Lobster.ttf 到/home/myusername/fonts/
从 SSH,运行“perl imagick_type_gen > fonts.xml”。这导致字体文件很大,但没有包含对 Lobster.otf 或 Lobster.ttf 的引用
相反,我生成了自己的 type.xml 并将其保存到/home/myusername/.magick/。这是标记:
<?xml version="1.0"?>
<typemap>
<type format="otf" name="Lobster" fullname="Lobster" family="Lobster" glyphs="/home/myusername/fonts/Lobster.otf" />
</typemap>
通过 SSH,我编辑了/user/lib64/ImageMagick-6.5.4/config/type.xml 并插入了引用自定义 type.xml 的节点:
<typemap>
<include file="type-ghostscript.xml" />
<include file="/home/myusername/.magick/type.xml" />
</typemap>
重启服务器。
此时,我可以使用这个列出字体:
$image = new Imagick();
$fonts = $image->queryfonts();
foreach($fonts as $font) {
echo $font . '<br />';
}
龙虾出现在列表中。但是,将 SVG 转换为 PNG 并没有使用 Lobster 字体。我在这里看到了与我的类似的其他问题,它们似乎有效。我需要做什么才能让系统识别添加的字体?
这是我用来渲染应该是使用 Lobster 作为字体的图像的代码:
//Setup SVG to be read by Imagick.
$SVG = '<?xml version="1.0" encoding="utf-8"?>';
$SVG .= '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';
$SVG .= '<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="158px" height="92px" viewBox="0 0 158 92" enable-background="new 0 0 158 92" xml:space="preserve">';
$SVG .= '<text transform="matrix(1 0 0 1 32 58)" font-family="Lobster" font-style="normal" font-size="20px" font-weight="400">Lobster</text>';
$SVG .= '</svg>';
$image = new Imagick();
//Convert SVG to JPG
$image->readImageBlob($SVG);
$image->setImageFormat("jpeg");
//Save the thumbnail.
$save_path = 'lobster-test.jpg';
$image->writeImage($save_path);
echo '<img src="'.$save_path.'">';
我在这里完全不知所措。帮助!
最佳答案
此处讨论了完整的解决方案: http://www.multipole.org/discourse-server/viewtopic.php?t=25630
但这是简短的版本:
在此之后,ImageMagick 将使用 SVG 中的字体。一个警告是您必须使用字体中嵌入的字体系列声明。例如,Lobster.otf 实际上列出了“Lobster 1.4”。
如果您已经安装了字体并使用了正确的字体系列名称,您将得到您的字体渲染!
关于php - ImageMagick 和 imagick_type_gen 无法识别添加的字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30085275/
使用 ImageMagick 我想绘制一个相对于图像宽度的图元 这对我不起作用 mogrify -stroke white -fill white -draw "rectangle 100,100 %
对于一个项目,我试图创建图像的透视失真以匹配 DVD 盒正面模板。所以我想使用 ImageMagick (CLI) 自动执行此操作,但我很难理解此转换的数学方面。 convert \ -verbo
我遵循的是这个示例http://cubiq.org/create-fixed-size-thumbnails-with-imagemagick,这正是我要对图像执行的操作,除了背景残留物(即白色边框)
我将.psd转换为一个文件夹内的.png文件。如何在具有不同扩展名的文件夹中保持每个文件的名称相同? 例如,我输入文件夹图像,然后从终端执行 $ convert *.psd *.png 但是它给.pn
我正在使用以下 ImageMagick 脚本(带有用于 PHP 的 Imagick)来生成字体图像。这个脚本用大约 0.1 秒来生成一个大约 30 个字符的 48 大小的图像。目标速度大约是 0.01
我正在使用以下 ImageMagick 脚本(带有用于 PHP 的 Imagick)来生成字体图像。这个脚本用大约 0.1 秒来生成一个大约 30 个字符的 48 大小的图像。目标速度大约是 0.01
我遇到了一个 paper它使用由 ImageMagick convert 命令生成的合成手写数据,使用许多不同的手写字体 ( Example images from paper )。 他们已经用他们的
我有一张图片。我需要从图像中裁剪矩形区域。该矩形区域由黑色边框标识。矩形里面是我需要的。是否可以在 imagemagick 中裁剪黑色边框矩形区域?我知道可以通过提供矩形区域的偏移量(-crop Wx
我有一堆图片是桌面墙纸,但尺寸不同。对于我的示例,我将使用分辨率 1920x1080。如何缩放图像以便: 对于宽度和高度小于我的屏幕的图像,图像居中然后按比例放大,直到两者中较小的达到 1920 或
我必须处理大量图像,并且正在寻找检测边框颜色的方法。例如,拍摄这张图片: 是否可以通过某种方式确定图像具有白色背景?解决方法是提取 1px 的边框并检查提取的边框的颜色是否同样为白色。但我认为 Ima
我正在使用 PowerShell 脚本将 Unicode 字符批量转换为 PNG 文件。参见 http://pastebin.com/aGJzk4Hh . 我发现要转换 " 字符,必须使用指定标签:\
目前我正在尝试转换为 HEIF,但唯一与 HEIF 相关的选项是 heic:preserve-orientation(在 CLI 选项 define 中)。我如何为 HEIF 和其他格式使用其他特定于
正如您在答案 “Diff” an image using ImageMagick 中看到的那样,“delta”图像以某种方式变亮了: 如何使用 ImageMagick 使图像变亮? 最佳答案 我假设您
我正在使用 ImageMagick 的 convert 来调整一些 .png 文件的大小,问题是 convert 似乎正在向 .png 写入一些额外的信息: EXtdate:create 2012-1
此 blog post 图像中使用的边框阴影效果似乎嵌入在图像本身(不是 css3)中。如何在 imagemagick 中创建它? 编辑 1: 我偶然发现的解决方案作为答案发布在下面。 最佳答案 有一
我有大约 200 张扫描照片,我想从中裁剪掉空白区域。参见示例: 有人可以为我提供适当的命令行代码来执行此操作吗?...我一直在尝试整理 -trim 和 -fuzz 选项,但没有成功。并非所有图像的大
我正在创建一个重命名照片的 bash 脚本,以便它们在文件名中包含日期和时间。我想用 ImageMagick 的 identify 实用程序建立一个文件名。 identify -format "IMG
我有一张长图source pic我想为每个子图像添加文本,但是当向书中添加文本时,我失败了,最终图像和代码: convert src.jpg -gravity north -pointsize 53
我想使用 CLI 向图像添加一个黑色矩形,该图像 1) 居中并且 2) 从每个边缘开始 X 像素。 基本上,我几乎想要 -border 的对立面(而不是添加某种颜色的边框,我想保留图像的 X 像素作为
所以我想创建一张由三张小图片组成的 3600x2280 大图片。第一个应调整为 1680x1050 并放置在左上角。第二个需要调整为 1920x1200 并立即放置在它的右侧(+1680 以上)。第三
我是一名优秀的程序员,十分优秀!