【问题标题】:How to create a rounded image with php? [duplicate]如何使用 php 创建圆形图像? [复制]
【发布时间】:2018-12-15 22:43:05
【问题描述】:

我正在尝试在 Php 中创建一个带有圆形边框的图像。

我试过了,但只创建了一个白色圆圈:

<?php
  header('Content-type: image/jpeg');
  $img = imagecreatefromjpeg('person_1.jpg');
  $color = imagecolorallocate($img, 255, 255, 255);
  imagefilledellipse($img , 300, 300, 600, 600, $color);
  imagejpeg($img);
  imagedestroy($img);
?>

我正在尝试做类似的事情(对不起,这个不好的例子):https://i.imgur.com/rO4xtHW.jpg

我明白了:https://i.imgur.com/8rKVdCi.jpg

希望你能帮我解决这个问题,谢谢。

【问题讨论】:

  • 欢迎来到 Stack Overflow。请edit您的问题包括您现在获得的图像的屏幕截图以及您想要生成的图像。
  • 完成,我用示例图片更新了帖子。
  • 为什么需要用 PHP 而不是 CSS?再想一想!
  • 你需要用 PHP 完成吗?考虑使用 CSS 来完成这项任务,它会容易得多
  • 最好只发送图像并让浏览器使用 CSS 对其进行屏蔽。在 PHP(或任何服务器端代码)中处理图像是对资源的巨大滥用。让用户的浏览器做一些工作。

标签: php


【解决方案1】:

以防万一您可以使用 CSS 而不是 PHP,它可能会更好更快。 创建一个 div 并将背景图像设置为您的图像,然后将半径边框设置为 50%,这将创建一个圆形。

.rounded {
  background-image: url("http://itayg.com/gallery/landscape/ThreeLagoons.jpg");
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background-repeat: no-repeat;
  background-size: cover;
}
&lt;div class="rounded"&gt;&lt;/div&gt;

【讨论】:

  • 我同意给出这个答案的理由,但我认为 OP 可能有他的理由将其舍入服务器端。可能涉及保存它,切割额外的像素可能会占用更少的空间?
  • @dGRAMOP 调整大小我明白了,但是为了稍微减小文件大小而丢弃信息是一件愚蠢的事情。更糟糕的是,它看起来不如在 CSS 中做的好,因为图像压缩会给圆圈增加噪点。
  • 同意,但不是 OP 提出的问题。我永远不会亲自使用 imagick 来做这样的事情。
  • 最初的想法是创建图像然后下载它。我知道如何在 CSS 中制作它。
猜你喜欢
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-28
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多