1

作为制作折线图的示例,图后面有透明背景......

最好使用抗锯齿线...

这样生成的 .png 图形可以更有用,更容易与其他内容等融合......

我知道 php gd 等可以输出透明的背景图像......这不正是我在这里要求的:我最接近的是使用 jpgraph for php,然后将图像输出返回到 php gd 并制作白色背景透明并将其输出为具有 alpha 背景的 .png 图像。虽然它真的很难看,因为 grpah 线条将在白色背景上进行抗锯齿处理,使这些线条仍然有白色/(线条中的任何颜色残留物)的痕迹,并且 php gd 等并不完全提供 Photoshop 工具来掩盖和羽化脏像素。

到目前为止,我什么也没找到。他们似乎都想默认为白色背景或其他指定的颜色/背景图像。没有阿尔法通道。我只是没有时间或知识来制作一个完整的库来制作图表

4

2 回答 2

2

您可以使用提供此功能的融合图表通过这样的设置来提供生成图形的透明bgAlpha='0'背景

<chart bgColor='999999,FFFFFF' bgAlpha='0' ...>

此外,您可以使用他们的文档进行更多自定义。

您还可以通过设置以下参数来使用 Dojo Charts (Free)

programmersChart.surface.rawNode.childNodes[1].setAttribute('fill-opacity','0');
于 2012-10-26T07:40:55.693 回答
2

您可以为此使用ezcGraph

Graph 组件使您能够创建折线图、饼图和条形图。输出驱动机制允许您从每个图表创建不同的图像类型,并且可用的渲染器使图表输出可定制,从简单的二维图表到漂亮的三维数据投影。

从他们的教程页面:

每种未定义的颜色将默认为透明白色。正如您在示例定义中所见,您可以在颜色的正常 RGB 值旁边定义 alpha 值。

其中一个例子是这样的:

require_once 'tutorial_autoload.php';
require_once 'tutorial_custom_palette_palette.php';
$wikidata = include 'tutorial_wikipedia_data.php';
$graph = new ezcGraphBarChart();
$graph->palette = new tutorialCustomPalette();
$graph->title = 'Wikipedia articles';
// Add data
foreach ( $wikidata as $language => $data )
{
$graph->data[$language] = new ezcGraphArrayDataSet( $data );
}
$graph->data['German']->displayType = ezcGraph::LINE;
$graph->options->fillLines = 210;
$graph->render( 400, 150, 'tutorial_custom_palette.svg' ); 

并会产生像

透明条形图

如果您更改此页面的背景颜色,您将看到图像是透明的。

于 2012-10-26T08:19:54.007 回答