PDFlib-设置笔触和填充不透明度(透明度)

时间:2019-08-16 16:11:39

标签: pdflib

在PDFlib中提供填充和描边颜色时,是否可以设置alpha通道的值?

$p->setlinewidth(20);
$p->setcolor('fill', 'rgb', 1, 0, 0, null);
$p->setcolor('stroke', 'rgb', 0, 1, 0, null);
$p->rect(0, 0, 100, 100);
$p->fill_stroke();

是否可以使矩形的红色填充和粗绿色边框变为半透明?

1 个答案:

答案 0 :(得分:1)

  

是否可以使矩形的红色填充和粗绿色边框变为半透明?

确定,请使用GState执行此任务。您可以在PDFlib食谱中找到完整的示例代码:Transparent Graphics


    /* Save the current graphics state. The save/restore of the current
     * state is not necessarily required, but it will help you get back to
     * a graphics state without any transparency.
     */

    $gstate = $p->create_gstate("opacityfill=.5 opacitystroke=.5");
    $p->save();
      $p->set_gstate($gstate);
      $p->setlinewidth(20);
      $p->setcolor('fill', 'rgb', 1, 0, 0, null);
      $p->setcolor('stroke', 'rgb', 0, 1, 0, null);
      $p->rect(0, 0, 100, 100);
      $p->fill_stroke();
    $p->restore();

要生成强大的路径,可以使用Path对象。请参见PDFlib 9.2文档以及PDFlib Cookbook - path objects中的示例。