为文本添加内阴影

发布于 2024-12-22 19:46:07 字数 281 浏览 0 评论 0原文

我正在寻找使用 PHP 向文本添加内部阴影的方法。我不是在寻找包含 HTML 和/或 CSS 的解决方案。图像必须仅使用 PHP 生成。

例如:https://i.sstatic.net/H4ndF.png
从上面的文本(“原始”)中,我想创建修改文本,因此它看起来像底部的文本(“阴影”)。
效果必须仅使用GD库或Imagemagick来实现,因为我无法将新库安装到服务器。

I'm looking for the way to add inner shadow to text using PHP. I'm not looking for a solution, which includes HTML and/or CSS. Image must be generated using only PHP.

For examle: https://i.sstatic.net/H4ndF.png
From the text above ('Original') I want to create modify text, so it will look like text at the bottom ('Shadow').
Effect must be achieved using only GD library or Imagemagick, because I can't install new libraries to the server.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浊酒尽余欢 2024-12-29 19:46:07

一种方法是使用不同的颜色和较小的偏移量绘制文本两次。

下面是示例代码,主要取自php手册,其中有一些修改让阴影出现。生成的图像位于此处

代码:

<?php
// Create a 300x100 image
$im = imagecreatetruecolor(300, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$gray = imagecolorallocate($im, 0x55, 0x55, 0x55);
$gray2 = imagecolorallocate($im, 0xDD, 0xDD, 0xDD);

// Make the background red
imagefilledrectangle($im, 0, 0, 299, 99, $gray2);

// Path to our ttf font file
$font_file = './ariblk.ttf';

// the text without shadow
imagefttext($im, 40, 0, 10, 45, $white, $font_file, 'Original');

// the shadow for "Shadow"
imagefttext($im, 40, 0, 10, 89, $gray, $font_file, 'Shadow');

// and the word itself
imagefttext($im, 40, 0, 10, 90, $white, $font_file, 'Shadow');

// Output image to the browser
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

One way is to draw your text twice with different colors and a small offset.

Below is the sample code, mainly taken from the php manual, with some modifications to let the shadow appear. The resulting image is here.

Code:

<?php
// Create a 300x100 image
$im = imagecreatetruecolor(300, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$gray = imagecolorallocate($im, 0x55, 0x55, 0x55);
$gray2 = imagecolorallocate($im, 0xDD, 0xDD, 0xDD);

// Make the background red
imagefilledrectangle($im, 0, 0, 299, 99, $gray2);

// Path to our ttf font file
$font_file = './ariblk.ttf';

// the text without shadow
imagefttext($im, 40, 0, 10, 45, $white, $font_file, 'Original');

// the shadow for "Shadow"
imagefttext($im, 40, 0, 10, 89, $gray, $font_file, 'Shadow');

// and the word itself
imagefttext($im, 40, 0, 10, 90, $white, $font_file, 'Shadow');

// Output image to the browser
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文