首页 > 编程语言 >php生成圆形图片

php生成圆形图片

时间:2023-06-03 11:11:57浏览次数:52  
标签:color image 生成 画布 正方形 圆形 php 255

在 PHP 中生成圆形图片需要用到 GD 库提供的图像处理函数。以下是一个简单的示例代码:

// 创建一个 200x200 的正方形画布
$image = imagecreatetruecolor(200, 200);

// 生成背景色为白色的正方形
$bg_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bg_color);

// 定义圆心坐标和半径
$cx = 100;
$cy = 100;
$r = 80;

// 在画布上绘制一个圆形
$fg_color = imagecolorallocate($image, 255, 0, 0);
imagefilledellipse($image, $cx, $cy, $r * 2, $r * 2, $fg_color);

// 将正方形转换为圆形
for ($x=0; $x<200; $x++) {
    for ($y=0; $y<200; $y++) {
        $dist = sqrt(pow($x-$cx,2) + pow($y-$cy,2));
        if ($dist > $r) {
            imagesetpixel($image, $x, $y, $bg_color);
        }
    }
}

// 输出圆形图片
header('Content-type: image/png');
imagepng($image);

// 释放内存
imagedestroy($image);

这个示例中,我们首先创建了一个 200x200 的正方形画布,并填充为白色背景。然后,我们定义了圆心坐标和半径,并在画布上绘制了一个红色的圆形。接着,我们通过循环遍历画布的每个像素,计算该像素与圆心之间的距离,如果距离大于半径,则将该像素设置为白色,从而实现将正方形转换为圆形的效果。最后,我们输出圆形图片并释放内存。

在 PHP 中生成圆形图片还可以使用其他方法,例如使用 SVG、CSS 或者 HTML 5 的 canvas 元素等。无论采用哪种方法,都需要注意生成圆形图片的性能和安全性,以保障程序的可靠性和稳定性。

标签:color,image,生成,画布,正方形,圆形,php,255
From: https://www.cnblogs.com/tuoyuanjishu/p/17453551.html

相关文章

  • 等差数列生成器
      1classArithmeticProgression:23def__init__(self,begin,step,end=None):4self.begin=begin5self.end=end6self.step=step789def__iter__(self):10result=typ......
  • PHP 之生成名片二维码与vcard格式
    一、vcard格式BEGIN:VCARDVERSION:3.0FN:样子TEL;CELL;VOICE:18333333333TEL;WORK;VOICE:010-66600000TEL;WORK;FAX:010-66600001EMAIL;PREF;INTERNET:[email protected]:http://baidu.comorG:网络工作室ROLE:技术部TITLE:CTOADR;WORK;POSTAL:北四环中路35号;100101REV:20......
  • php rabbitmq队列的几种管理方案
     这里就懒得记录了,直接放上一篇还不错的知乎博主的博客吧。点击前往  ......
  • 野指针得生成、危害、清除
    1、野指针得概念::指针指向的位置不可知的(随机、不正确、没有明确限制的)2、野指针生成的三种情况1、指针未定义,就进行*p相关操作2、指针越界访问,知道指向哪,但不是有效值3、指针指向的空间释放(函数的变量作用范围在函数内,返回函数内定义的指针到主函数是无效的,已经被......
  • 4、Ansible模板--用于根据每个主机的不同环境而为生成不同的文件
    ansible模板模板是一个文本文件,可以用于根据每个主机的不同环境而为生成不同的文件模板文件中支持嵌套jinja2语言的指令,来实现变量,条件判断,循环等功能需要使用template模块实现文件的复制到远程主机,但和copy模块不同,复制过去的文件每个主机可以会有所不同jinja2语言http:......
  • 数据生成与采集
    数据生成我们需要先生成测试数据,一份是服务端数据,还有一份是客户端数据【客户端数据】用户行为数据首先我们模拟生成用户行为数据,也就是客户端数据,主要包含用户打开APP、点击、浏览等行为数据用户行为数据:通过埋点上报,后端日志服务器(http)负责接收数据埋点上报数据基本格式:......
  • Linux 编译安装 php 扩展 amqp
    这里最大的坑,就是  rabbitmq-c和amqp扩展版本不符,导致的各种bug。其他也没啥,这里简单记录下:我这里使用的环境:php7.4  、rabbitmq-c0.7.1、amqp1.9.4. 安装rabbitmq-c(注意记住你的安装位置,下一步要用)wgethttps://github.com/alanxz/rabbitmq-c/releases/download......
  • RSA密钥证书的生成
    @@rsa密钥生成 首先需要下载OpenSSL软件,一直点击下一步就好,链接:链接:https://pan.baidu.com/s/1uHNpKGF9j9c1bQ6QAwtpOA提取码:myit(百度网盘分享无须官网下载,如若不好使请私信或者评论) 启动位置是在你软件安装的位置下,找到bin目录,然后在上方文件位置直接输入cmd,或者打开dos......
  • 【web 开发】PHP8中对数组操作的新变化
    自动创建元素的顺序改变在PHP8中,引用赋值时,自动创建的数组元素或者对象属性的顺序和PHP7版本相比发生了变化,下面我们通过例子来体验下变化在哪里.<?php$array=[];$array['a']=&$array['b'];$array['b']=1;echo"\n";var_dump($array);?>执行结果如下:这个结果是PHP8......
  • 发言稿生成器app推荐,这几个生成发言稿的软件要知道!​
    发言稿生成器app推荐,发言稿生成器app是一款能够帮助用户快速生成演讲或发言稿的手机应用程序,用户可以在应用程序中输入主题或关键词,然后应用程序会自动生成一份基础的演讲稿或发言稿,那么很多小伙伴日常会使用到,下面感兴趣的小伙伴一起来看看小编的推荐吧!选择:FunAIFUNAI是一款基......