1

我正在尝试让 pangocairo 在图像上写文字。我在 StackOverflow 中关注了几个线程并关注了所有线程。标准是安装

Pango Cairo gtk libpangocairo 和我检查了已经安装的程序,发现已经安装了。

yum list installed
cairo.x86_64                                      @base

pango.x86_64                                      @base
gtk2.x86_64                                      @base

所以我没有再次安装。在该列表中,其他程序被列为已安装,但我认为唯一的外部程序需要再次安装,如果我可以使用基本程序,我不想再次安装相同的程序。

任何帮助都会很棒

我的 PHP 代码直接来自 Cairo 站点,但出现内部服务器错误。似乎 Pango/Cairo 不工作

<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
define("RADIUS", 150);
define("N_WORDS", 10);
define("FONT", "Sans Bold 27");

function draw_text($c) {
    $c->translate(RADIUS, RADIUS);
    $l = new PangoLayout($c);
    $l->setText("Text");    
    $desc = new PangoFontDescription(FONT);
    $l->setFontDescription($desc);

    for($i = 0; $i < N_WORDS; $i++) {
        $angle = 360.0 * $i / N_WORDS;
        $red = (1 + cos (($angle - 60) * M_PI / 180)) / 2;

        $c->save();
        $c->setSourceRGB($red, 0, 1.0 - $red);
        $c->rotate($angle * M_PI / 180.0);
        $l->updateLayout($c);
        $size = $l->getSize();
        $c->moveTo( - ((double)$size['width'] / 2048), - RADIUS);
        $l->showLayout();
        $c->restore();
    }
}

$s = new CairoImageSurface(CairoFormat::ARGB32, RADIUS *2, RADIUS *2);
$c = new CairoContext($s);
$c->setSourceRGB(1, 1, 1);
$c->paint();
draw_text($c);
$s->writeToPng('circle.png');
?>
4

0 回答 0