ios - 如何将柔和形状的阴影应用于其中具有透明区域的图形?

标签 ios core-graphics image-manipulation calayer

通常我使用的是 CALayer shadowRadius,但现在我还需要使用 UIImage 并根据图像中的内容为其应用形状阴影。

例如,当我有一个包含文本的图层并设置阴影时,它会自 Action 用于文本,而不仅仅是作用于图层的矩形。

在 Photoshop 中,这称为“图层样式”,它会根据图像内容的形状自动工作。

恐怕我需要实现一些 Harvard-Stanford-MIT-NASA 的硬核逻辑来在“形状图像”上应用阴影,即圆形图标的图像,其中图标周围的区域是完全透明的.

我能够在每个像素级别上操作图像,因为我已经在绘制图表时这样做了,所以如果有一些出色算法的开源实现,那就太棒了。如果不是:这基本上是如何工作的?我的猜测是我会“只是”尝试以某种方式模糊图像的灰度版本,然后用非模糊版本覆盖它。

最佳答案

My guess is I would "just" try to blur a grayscaled version of my image somehow and then overlay it with the non-blurred version.

实际上就是这样。除了不是模糊图像的灰度版本,而是模糊图像的纯色版本(即保留 alpha channel ,但使所有像素为黑色)。虽然 CALayer 的阴影应该已经为你完成了。

如果您的图像已经合成到背景上(即没有真正的透明度),您会遇到更困难的问题,因为您首先需要“移除”背景,然后才能拥有对象的形状以生成阴影。

关于ios - 如何将柔和形状的阴影应用于其中具有透明区域的图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6412024/

相关文章:

iphone - 如何对 UIImage 进行去饱和处理?

image-manipulation - 使用 .NET Core 调整图像大小?

c# - 如何检查图像的尺寸,以便按比例缩小它们以避免失真?

ios - Objective-c BOOL 总是传递

objective-c - 核心数据和实体数n "Person"

ios - 如何从 iOS 上的图像中提取经过透视校正的矩形区域

ios - 检测图像 ios 上的黑线

ios - Swift CGContext 切面匹配

python - 使用 Python Image Library 将一张图片切割成多张图片

ios - NSInvalidArgumentException : unrecognized selector sent to instance