mohsen-mhm/

laravel-image-charts

Image-charts PHP 库,用于生成图像格式的图表

v1.5.3 2024-07-14 20:25 UTC

This package is auto-updated.

Last update: 2024-09-15 09:21:18 UTC


README

Image-charts PHP 库,用于为您的 Laravel 应用程序生成图像格式的图表。

Logo

PHP Version Require Required Laravel Version Latest Stable Version Total Downloads License

安装

您可以通过 Composer 安装此软件包

composer require mohsen-mhm/laravel-image-charts

发布配置文件

要发布配置文件,请使用以下命令

php artisan vendor:publish --provider="MohsenMhm\LaravelImageCharts\Providers\ImageChartsServiceProvider" --tag="config"

这将创建一个名为 image-charts.php 的配置文件,位于 config 目录中。

配置

您可以在 config/image-charts.php 文件中配置软件包设置。默认配置值如下

return [
    'base_url' => env('IMAGE_CHARTS_BASE_URL', 'https://image-charts.com/chart.js/2.8.0'),
    'default_bg_color' => '#2B2B2B',
    'default_dataset_bg_color' => '#FCBB3D',
    'default_dataset_border_color' => '#FCBB3D',
    'default_width' => '900',
    'default_height' => '600',
    'default_title_text' => 'mohsen.sbs',
    'default_image_path' => storage_path('app/public/charts'),
];

使用方法

生成图表 URL

以下是如何使用此软件包生成图表 URL 的示例

use MohsenMhm\LaravelImageCharts\ImageChart;

$chartUrl = (new ImageChart())
        ->setData([10, 20, 30])
        ->setLabels(['January', 'February', 'March'])
        ->getUrl();

或使用 Facade

use MohsenMhm\LaravelImageCharts\Facades\ImageChartFacade as ImageChart;

$chartUrl = ImageChart::setData([10, 20, 30])
        ->setLabels(['January', 'February', 'March'])
        ->getUrl();

然后您可以使用此 URL 在您的应用程序中显示图表。

<img src="{{ $chartUrl }}" alt="Chart">

下载图表图像

您还可以将生成的图表图像下载到本地文件。如果没有指定路径,则图像将保存到配置文件中指定的默认路径。

use MohsenMhm\LaravelImageCharts\ImageChart;

$fullImagePath = (new ImageChart())
        ->setData([10, 20, 30])
        ->setLabels(['January', 'February', 'March'])
        ->getImage();

或使用 Facade

use MohsenMhm\LaravelImageCharts\Facades\ImageChartFacade as ImageChart;

$fullImagePath = ImageChart::setData([10, 20, 30])
        ->setLabels(['January', 'February', 'March'])
        ->getImage();

这将保存图像到默认路径,并使用生成的文件名,并返回保存图像的完整路径。您也可以指定自定义路径

use MohsenMhm\LaravelImageCharts\ImageChart;

$customPath = storage_path('app/public/custom_charts');

$fullImagePath = (new ImageChart())
        ->setData([10, 20, 30])
        ->setLabels(['January', 'February', 'March'])
        ->getImage($customPath);

或使用 Facade

use MohsenMhm\LaravelImageCharts\Facades\ImageChartFacade as ImageChart;

$customPath = storage_path('app/public/custom_charts');

$fullImagePath = ImageChart::setData([10, 20, 30])
        ->setLabels(['January', 'February', 'March'])
        ->getImage($customPath);

输出

Example chart

完整使用示例

use MohsenMhm\LaravelImageCharts\ImageChart;

try {
    $imageChart = (new ImageChart())
        ->setLabels(['January', 'February', 'March'])
        ->setData([10, 20, 30])
        ->setBackgroundColor('#FFFFFF')
        ->setDatasetBackgroundColor('#FF0000')
        ->setDatasetBorderColor('#0000FF')
        ->setWidth('800')
        ->setHeight('400')
        ->setTitleText('Monthly Data');

    $chartUrl = $imageChart->getUrl();
    $imagePath = $imageChart->getImage();
    $binaryData = $imageChart->getBinary();

    echo "Chart URL: $chartUrl\n";
    echo "Image saved at: $imagePath\n";
    echo "image in binary format: $binaryData\n";
} catch (InvalidArgumentException $e) {
    echo 'Error: ' . $e->getMessage();
}

输出

Chart URL: https://image-charts.com/chart.js/2.8.0 ...
Image saved at: .../storage/app/public/charts/chart_1718432986.png
image in binary format: b"ëPNG \x1A \x00\ ..."

Example chart

方法

ImageChart 类提供了以下方法来配置您的图表

  • setData(array $data):设置图表的数据点。
  • setLabels(array $labels):设置图表的标签。
  • setBackgroundColor(string $color):设置图表的背景颜色。
  • setDatasetBackgroundColor(string $color):设置数据集的背景颜色。
  • setDatasetBorderColor(string $color):设置数据集的边框颜色。
  • setWidth(string $width):设置图表的宽度。
  • setHeight(string $height):设置图表的高度。
  • setTitleText(string $title):设置图表的标题文本。
  • getUrl():生成并返回图表 URL。
  • getImage(string $path = null):将图表图像下载到指定的本地文件路径,或使用未指定时默认路径。返回保存图像的完整路径。
  • getBinary():生成并返回二进制格式的图表图像。

许可证

此软件包是开源软件,许可证为 MIT 许可证

贡献

欢迎贡献!请随时在 GitHub 上提交拉取请求。

更多图表类型和功能即将推出... :)

作者

Mohsen Mohammadi - 开发者。如需更多信息,请访问 GitHub 存储库