如何从多个图像中构建单个图像作为一个圆圈?

Posted

技术标签:

【中文标题】如何从多个图像中构建单个图像作为一个圆圈?【英文标题】:How to construct a single image from multiple images as a circle? 【发布时间】:2015-06-16 02:17:15 【问题描述】:

我正在尝试创建一个命运之轮类型的游戏。基本上,它涉及旋转图像,直到它放慢速度并落在奖品上。

问题是我想动态创建***。在某些情况下,我可能只有 5 个“件”,而在其他情况下,我可能有多达 10 个“件”。所以我需要找到一种方法,使用 php,来构建这样的图像:

在几个矩形图像中。

    有没有简单的方法可以做到这一点? 如果不是,我应该使用什么 PHP 工具包来构建它?

更新

我现在可以用切片创建馅饼了:

$saveImage = 'image.png';
if (file_exists($saveImage)) 
    unlink($saveImage);


$height = $width  = 400;

// 1. Create a blank canvas image with transparent circle
$image = imagecreatetruecolor($width, $height);

$bg          = imagecolorallocate($image, 0, 0, 0);
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

imagecolortransparent($image, $bg);

imagefilledellipse($image, ($width / 2), ($height / 2), $width, $height, $col_ellipse);

// 3. Divide image into slices
$numberOfSlices = sizeof($images);
$black = imagecolorallocate($image, 0, 0, 0);
$sliceDegrees = 360 / $numberOfSlices;
$first = true;
$radius = 0.5 * $width;

// start point is always the middle
$startX = $width / 2;
$startY = $height / 2;

$points = array();

for ($i = 0 ; $i < $numberOfSlices; $i++)

    $angle = $i * ($sliceDegrees);
    $endX = $radius * cos(deg2rad($angle)) + $radius;
    $endY = $radius * sin(deg2rad($angle)) + $radius;

    $points[] = array (
    $endX, $endY
    );

    imageline(
    $image, 
    $startX, $startY, 
    $endX ,  $endY, 
    //150, 150 + ($i * 10), 
    $black
    );

剩下的问题是让图像适合披萨片。所以我需要遮盖那部分的图像。

【问题讨论】:

您可以使用GD Library创建镜像 看看this :) 【参考方案1】:

我建议您通过 GD 库使用 Imagemagick 库。因为 Imagemagick 比 GD 快。

Imagemagick

这些链接也将对您有所帮助: Layering, Montage, Fred's Scripts

【讨论】:

以上是关于如何从多个图像中构建单个图像作为一个圆圈?的主要内容,如果未能解决你的问题,请参考以下文章

如何将多个图像作为输入提供给卷积神经网络

新闻应用程序使用多个RSS提要

使用VP树和OpenCV构建一个图像哈希搜索引擎

如何在图像上画一个圆圈

如何在单个活动上水平排列多个图像

在 Atlassian Bamboo 中,有没有办法将最新的构建状态作为图像获取?