轰,哇,战俘! 带有SVG过滤器的漫画FX刻字

2023-10-25 15:20

本文主要是介绍轰,哇,战俘! 带有SVG过滤器的漫画FX刻字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

In two previous articles I’ve talked about using SVG to make comic book speech bubbles; in this one, I’m going to look at text effects associated with lettering for sound effects, which are more broadly applicable to web design.

在前两篇文章中,我讨论了使用SVG制作漫画演讲泡泡 ; 在这一部分中,我将研究与声音效果的刻字相关的文本效果,这些效果更广泛地适用于Web设计。

加入概述的信件 (Joined Outlined Letters)

Stroking the exterior of letterforms is a fairly well-established technique in web design: Webkit has a property to do so; you can also fake it with text-shadow, or use SVG stroke. However, none of those techniques allow you to do joined stroked letterforms, shown in the example at the top, where the stroke goes around the shared outline of letters that overlap. To achieve that, we have to use SVG filters:

在Web设计中,抚摸字母形式的外观是一项相当完善的技术:Webkit具有这样做的特性; 您也可以使用text-shadow伪造它 ,或使用SVG stroke 。 但是,这些技巧都不允许您执行连接的笔划字母形式(如顶部示例所示),其中笔划围绕重叠的字母的共享轮廓进行。 为此,我们必须使用SVG过滤器:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 500"><defs><filter id="outline"><feMorphology operator="dilate" in="SourceAlpha" radius="3"/><feComposite in="SourceGraphic"/></filter></defs><text fill="yellow" filter="url(#outline)" x="0" y="100" dx="0, -10, -10, -12">BOOM</text>
</svg>

The <text> element (sized to 120px with CSS) uses staggered dx values, explained in the last article, to draw the letters together, while the <filter> strokes the joined outline.

<text>元素(CSS的大小为120px)使用交错的dx值(在上一篇文章中进行了说明)将字母拼在一起,而<filter>则绘制连接的轮廓。

I’ve made each example contentEditable, so you can edit the text yourself to see how it works with different letters: simply highlight the text and insert new content.

我已将每个示例都设置为contentEditable ,因此您可以自己编辑文本以查看其如何使用不同的字母:只需突出显示文本并插入新内容即可。

I’ll have more to say about the dilate filter in a future article: for now, you might want to experiment with changing the thickness of the stroke by altering the radius value of the filter in the associated CodePen demo.

在以后的文章中,我将对dilate过滤器进行更多说明:现在,您可能想尝试通过在关联的CodePen演示中更改过滤器的radius值来更改笔触的粗细。

粗体 (Roughened Text)

Sound effect lettering is also often drawn distorted or jagged to enhance the effect: think of the visual association of a sound like KERR-UNCH!, for example. We can achieve a similar result with SVG:

声音效果刻字也经常被扭曲或锯齿地绘制以增强效果:想想像KERR-UNCH之类的声音的视觉关联 , 例如。 我们可以使用SVG达到类似的结果:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 60"><defs><filter id="breakup"><feTurbulence result="TURBULENCE" baseFrequency=".7"numOctaves="1" seed="1" /><feDisplacementMap in="SourceGraphic" in2="TURBULENCE" scale="1.7" /></filter></defs>
<text x="10" y="50" dy="0, -10, 8, -8" filter="url(#breakup)">WHAM</text>
</svg>

This time the text is staggered vertically with dy values. Again, I’ll have more to say about the feTurbulence filter in a future article. For now, I’d suggest playing with the baseFrequency and scale values in the CodePen demo: these two values control how “fragmented” the roughness is, and the size of the fragment details.

这次文本与dy值垂直交错。 同样,在以后的文章中,我将对feTurbulence过滤器进行更多说明。 现在,我建议在CodePen演示中使用baseFrequencyscale值:这两个值控制粗糙度的“碎片化”程度以及片段细节的大小。

Dirk Weber’s excellent article The Art Of The SVG Filter And Why It Is Awesome on Smashing Magazine contains many more examples of using SVG filters on text.

Dirk Weber在Smashing Magazine上出色的文章SVG过滤器的艺术以及它为何如此出色包含了更多在文本上使用SVG过滤器的示例。

本戴点 (Ben-Day Dots)

In a previous article I’ve demonstrated a halftone effect with SVG. Officially, halftone uses dots or shapes that can change size and distribution, whereas Ben-Day dots, the variation I’m using here, must always remain the same size and spacing. “pop art” movement.

在上一篇文章中,我演示了SVG的半色调效果 。 正式地,半色调使用可以改变大小和分布的点或形状,而Ben-Day点(我在此处使用的变体)必须始终保持相同的大小和间距。 “流行艺术”运动。

alt
Initial design of Ben-Day pattern in Adobe Illustrator
Ben Illustra模式在Adobe Illustrator中的初步设计

To create this effect, I started by creating a series of circle elements with their centers at the points of a hexagon. Fit on the edges of a <pattern> element, these circles would create the fill, with the addition of a <rect> behind them (since a <pattern> cannot take a traditional fill). This technique echoes the many examples I’ve used in making SVG backgrounds.

为了产生这种效果,我首先创建了一系列圆心 ,它们的中心在六边形的点上。 这些圆适合<pattern>元素的边缘,将创建填充,并在其后添加<rect> (因为<pattern>不能采用传统fill )。 这项技术呼应了我制作SVG背景时使用的许多示例。

<pattern id="hexapolka" patternUnits="userSpaceOnUse"width="100" height="86" patternTransform="scale(.1)"><rect width="100%" height="86" fill="#f0f" /><circle cx="0" cy="44" r="16" id="dot" fill="red" /><use xlink:href="#dot" transform="translate(48,0)" /><use xlink:href="#dot" transform="translate(25,-44)" /><use xlink:href="#dot" transform="translate(75,-44)" /><use xlink:href="#dot" transform="translate(100,0)" /><use xlink:href="#dot" transform="translate(75,42)" /><use xlink:href="#dot" transform="translate(25,42)" />
</pattern>

Added to the <defs> section, this was joined by a <filter> to create a drop shadow for the text:

添加到<defs>部分,由<filter> ,以为文本创建阴影:

<filter id="shadow"><feConvolveMatrix order="4,4" kernelMatrix="1 0 0 00 1 0 00 0 1 0 0 0 0 1" in="SourceAlpha" result="bevel" /><feOffset dx="1" dy ="1" in="bevel" result="offset" /><feMerge><feMergeNode in="offset" /><feMergeNode in="SourceGraphic" /></feMerge>
</filter>

I’ll provide much more information on <feMerge> and <feConvolveMatrix> in a future article; for now, I’d recommend playing with the dx and dy values to change the shadow offset in the CodePen demo.

我将在以后的文章中提供有关<feMerge><feConvolveMatrix>更多信息。 现在,我建议使用dxdy值来更改CodePen演示中的阴影偏移。

The text is treated slightly differently in this case, as it has both a fill and a filter applied to it:

在这种情况下,对文本的处理略有不同,因为它同时具有填充过滤器:

svg text {filter: url(#shadow);fill: url(#hexapolka);
}

Note that Safari currently has an issue with a drop-shadow applied this way, meaning that the text will not render in Safari (desktop or iOS). There are alternatives, which I will cover in an SVG drop shadow article; in the future, SVG2 should also support the text-shadow property of CSS.

请注意,Safari当前在使用这种阴影方式存在问题,这意味着文本不会在Safari(台式机或iOS)中呈现。 有一些替代方法,我将在SVG投影文章中介绍。 将来,SVG2还应该支持CSS的text-shadow属性。

结论 (Conclusion)

With a little work and experimentation, many different kinds of text effects can be easily achieved with SVG filters, which is a topic I’ll look at in depth next.

只需做一些工作和实验,使用SVG过滤器就可以轻松实现许多不同种类的文本效果,这是我接下来将要深入探讨的主题。

翻译自: https://thenewcode.com/633/Boom-Wham-Pow-Comic-Book-FX-Lettering-with-SVG-Filters

这篇关于轰,哇,战俘! 带有SVG过滤器的漫画FX刻字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/283412

相关文章

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

Redis中使用布隆过滤器解决缓存穿透问题

一、缓存穿透(失效)问题 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有命中,会去数据库中查询,而数据库中也没有该数据,并且每次查询都不会命中缓存,从而每次请求都直接打到了数据库上,这会给数据库带来巨大压力。 二、布隆过滤器原理 布隆过滤器(Bloom Filter)是一种空间效率很高的随机数据结构,它利用多个不同的哈希函数将一个元素映射到一个位数组中的多个位置,并将这些位置的值置

布隆过滤器的详解与应用

一、什么是Bloom Filter Bloom Filter是一种空间效率很高的随机数据结构,它的原理是,当一个元素被加入集合时,通过K个Hash函数将这个元素映射成一个位阵列(Bit array)中的K个点,把它们置为1。检索时,我们只要看看这些点是不是都是1就(大约)知道集合中有没有它了:如果这些点有任何一个0,则被检索元素一定不在;如果都是1,则被检索元素很可能在。这就是布隆过滤器的基本思

JavaFX环境的搭建和一个简单的例子

之前在网上搜了很多与javaFX相关的资料,都说要在Eclepse上要安装sdk插件什么的,反正就是乱七八糟的一大片,最后还是没搞成功,所以我在这里写下我搭建javaFX成功的环境给大家做一个参考吧。希望能帮助到你们! 1.首先要保证你的jdk版本能够支持JavaFX的开发,jdk-7u25版本以上的都能支持,最好安装jdk8吧,因为jdk8对支持JavaFX有新的特性了,比如:3D等;

请解释Java Web应用中的前后端分离是什么?它有哪些好处?什么是Java Web中的Servlet过滤器?它有什么作用?

请解释Java Web应用中的前后端分离是什么?它有哪些好处? Java Web应用中的前后端分离 在Java Web应用中,前后端分离是一种开发模式,它将传统Web开发中紧密耦合的前端(用户界面)和后端(服务器端逻辑)代码进行分离,使得它们能够独立开发、测试、部署和维护。在这种模式下,前端通常通过HTTP请求与后端进行数据交换,后端则负责业务逻辑处理、数据库交互以及向前端提供RESTful

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光 一,前言二,资源包内容三,免费获取资源包 一,前言 在创意的世界里,每一个细节都能决定一个项目的独特魅力。今天,要向大家介绍一款令人惊艳的粒子效果包 ——Super Confetti FX。 二,资源包内容 💥充满活力与动态,是 Super Confetti FX 最显著的标签。它宛如一位

.NET 自定义过滤器 - ActionFilterAttribute

这个代码片段定义了一个自定义的 ASP.NET Core 过滤器(GuardModelStateAttribute),用于在控制器动作执行之前验证模型状态(ModelState)。如果模型状态无效,则构造一个 ProblemDetails 对象来描述错误,并返回一个 BadRequest 响应。 代码片段: /// <summary>/// 验证 ModelState 是否有效/// </

url参数中带有号,需要用先把url做个解析,使其方便在网络上传递

需求:提交异步通知地址给宝付的投标接口,发现投标成功后,异步通知地址没有被调用 排查:通过和宝付技术对接,发现是203,地址重定向错误。深入排查,发现异步通知返回的地址中&号之后的参数宝付没有收到 结论:表单提交的参数中的异步通知地址中的&号没有做urlencode()处理导致传递丢失参数。 地址参数中带有&号,java在做提交的时候,不能正确传递&,导致地址中&之后的内容丢失。故此需要ur

水处理过滤器运行特性及选择原则浅谈

过滤属于流体的净化过程中不可缺的处理环节,主要用于去除流体中的颗粒物或其他悬浮物。水处理过滤器的原理是利用有孔介质,从流体中去除污染物,使流体达到所需的洁净度水平。         水处理过滤器的滤壁是有一定厚度的,也就是说过滤器材具有深度,以“弯曲通 道”的形式对去除污染物起到了辅助作用。过滤器是除去液体中少量固体颗粒的设备,当流体进入置有一定规格滤网的滤筒后,其杂质被阻挡,而

过滤器:精密过滤器特点及应用范围概述

精密过滤器(又称作保安过滤器),筒体外壳一般采用不锈钢材质制造,内部采用PP熔喷、线烧、折叠、钛滤芯、活性炭滤芯等管状滤芯作为过滤元件,根据不同的过滤介质及设计工艺选择不同的过滤元件,以达到出水水质的要求。随着过滤行业的不断发展,越来越多的行业和企业运用到了精密过滤器,越来越多的企业加入了精密过滤器行业。   一、精密过滤器的性能特点及应用   1、精密过滤器的性能特点   (1)过滤精