如何在文本到图像处理中使用带有中文字体的ImageMagick

时间:2017-12-12 14:48:09

标签: macos fonts imagemagick-convert

我尝试使用ImageMagick将中文字符处理到MacBook上的图像。

我使用命令检查系统中可用的中文字体。

convert -list font | grep Font

我没有得到任何。

从ImageMagick指南Text to Image Handling看,支持中文字体,例如ZenKaiUni

从MacBook的应用程序字体相册中看到。中文字体太多了。

我认为没关系。如何理解?

3 个答案:

答案 0 :(得分:2)

您可以告诉 ImageMagick 系统中的所有字体,例如this,如果您这样做,它们会显示:

convert -list font

然后你可以使用速记:

convert -font Arial ...

或者,您可以在每次调用的基础上告诉 ImageMagick 任何字体的完整路径:

printf "Hello" | convert -pointsize 72 \
   -font "/Applications/iMovie.app/Contents/Frameworks/Flexo.framework/Versions/A/Resources/Fonts/Zingende Regular.ttf" \
   label:@- result.png

您可能会将Unicode替换为我的" Hello"

enter image description here

答案 1 :(得分:2)

我的系统上没有任何中文字体,但这里是我建议使用符号字体的示例。首先下载一个正确的UTF-8中文字体,即支持UTF-8字符的字体。然后打开兼容UTF-8的文本编辑器,选择该字体并键入您的字符串。例如,这是我在Mac上的BBEdit UTF-8兼容文本编辑器中使用符号字体创建的symbols.txt文件的屏幕截图。

enter image description here


然后使用ImageMagick,

convert -size 100x -font "/library/fonts/GreekMathSymbols Normal.ttf" label:@symbols.txt symbol.gif


产生的symbol.gif图像是:

enter image description here


将.utf8作为后缀添加到文件中是不够的。您必须使用兼容UTF-8的字体在兼容UTF-8的文本编辑器中创建文本文件。

此外,大多数终端窗口不支持UTF-8字符/字体。因此,在终端窗口中直接在命令行中输入字符并不总是有效。见http://www.imagemagick.org/Usage/text/#unicode

答案 2 :(得分:1)

您无法在<?php try { $con = new PDO("mysql:host=localhost;dbname=kgruum member", "root", ""); $sql = $con->query("SELECT * FROM member"); echo "<table class='info' align='center' border='1'>"; echo "<tr><td width='10'></td> <td width='10'><b>ID</b></td> <td width='500'><b>Name</b></td> <td width='50'><b>Handicap</b></td><tr>"; foreach($sql as $row) { $ID = $row["ID"]; $Name = $row["Name"]; $Handicap = $row["Handicap"]; echo "<tr> <td><form method='POST' action='Add participant.php'><input type='checkbox' name='insert[]' value='$ID'></td> <td>$ID</td> <td>$Name</td> <td>$Handicap</td><tr>"; } echo"</table><div align='center'><input type='image' value='submit' src='add selected button.png' alt='submit Button' onmouseover='this.src='pink add selected button.png'' onmouseout='this.src='add selected button.png'' name='add_btn' id='add_btn'></div><br></form>"; if(isset($_POST['add_btn'])) { if(!empty($_POST['insert'])) { foreach($_POST['insert'] as $check) { $st=$con->prepare("INSERT INTO participants(ID,Name,Handicap) VALUES('$ID','$Name','$Handicap')"); $insert->bindParam('ID',$ID); $insert->bindParam('Name',$Name); $insert->bindParam('Handicap',$Handicap); $st->execute(); } echo "<script type='text/javascript'> alert('Successful Insert ! '); window.location.href = 'Add participant.php'; </script>"; } else { echo "<script type='text/javascript'>alert('You didn't choose which user you want to insert ! ')</script>"; } } } catch(PDOException $e) { echo "error".$e->getMessage(); } ?> the font information it uses doesn't include language support中执行此操作,但ImagMagick创建智能收藏可以轻松实现如下:

enter image description here

在我的Mac上,我有35种包含中文字符的字体。

enter image description here

(灰色/灰色字体可用但需要先从Apple服务器下载才能使用它们,在任何应用程序中选择这些字体时都会自动完成。)