浏览器是如何实现 CSS 滤镜的?兼谈如何使用 govips 实现同样的滤镜效果 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
n0vad3v
V2EX    程序员

浏览器是如何实现 CSS 滤镜的?兼谈如何使用 govips 实现同样的滤镜效果

  •  
  •   n0vad3v
    n0vad3v 2023-08-16 12:32:40 +08:00 1212 次点击
    这是一个创建于 793 天前的主题,其中的信息可能已经有所发展或是发生改变。

    文章正文链接: https://blog.webp.se/govips-filter-zh/

    大家好,这里是 WebP Cloud 的 Nova ,我们在尝试做一个 SaaS 版本的 WebP Server Go,类似于一个图片 CDN 。

    最近我们给 WebP Cloud 加入了图片加水印和滤镜的效果,期间研究了浏览器上 CSS 滤镜的实现方式以及 Golang 中如何实现同样的滤镜效果(此外还给 govips 仓库贡献了相关代码,我们的 PR: https://github.com/davidbyttow/govips/pull/377 ),以上文章便是我们的分享。

    水印和滤镜可以通过传入 GET Params 的来临时添加和预览:

    比如这是水印:

    img img
    https://559a238.webp.ee/images/create-proxy.png https://559a238.webp.ee/images/create-proxy.png?visual_effect=watermark,text__5oiR55qE5LiW55WM5piv5LuA5LmI,width__0.1,height__0.1,offset_x__0.23,offset_y__0.34,opacity__1,color__001489,font__WGlhb2xhaVND

    这是名为 moon 的滤镜:

    img img
    https://559a238.webp.ee/images/create-proxy.png https://559a238.webp.ee/images/create-proxy.png?visual_effect=filter,name__moon

    当然,以上效果都可以在 WebP Cloud Dashboard 上设置并对所有图片生效(比如水印功能全局生效的话可以减少图片被盗用的风险,而且不需要站长手动在上传前给每个图片加上水印)


    关于 WebP Cloud:用户只需要用 GitHub 登录,然后填写源站地址,即可获得一个新的带 WebP 转换的,带 CDN 和缓存的新地址,比如 100KB 的图片 https://blog.webp.se/hetzner-arm64/c1-board.png 地址变成 WebP 版本的只有 60KB 的 https://p2k7zwb.webp.ee/hetzner-arm64/c1-board.png 地址(且画质几乎不会衰退)。

    比如下图中就是从我们博客上的一个例子。 (我们自己的博客 https://blog.webp.se ,和我们团队成员的博客/网站都在使用 WebP Cloud ,吃自己狗粮是我们文化的一部分。)

    我们的主要功能是通过将图片从一些比较”老旧“的格式(比如 PNG ,JPG )转换为一些比较”新“的格式(比如 WebP/AVIF )来大幅减少图片体积,加速图片加载速度,比如:

    img img
    https://blog.webp.se/hetzner-arm64/c1-board.jpg https://p2k7zwb.webp.ee/hetzner-arm64/c1-board.jpg
    107.81 KB 64.52 KB

    此外,你还可以通过传入 ?width= 参数来直接生成缩略图,传 ?flip= 让图片旋转, ?sharp= 让图片锐化等等。

    img img
    https://blog.webp.se/hetzner-arm64/c1-board.jpg https://p2k7zwb.webp.ee/hetzner-arm64/c1-board.jpg?width=200 https://p2k7zwb.webp.ee/hetzner-arm64/c1-board.jpg?flip=b

    更多我们支持的功能可以在: https://docs.webp.se/webp-cloud/feature/https://docs.webp.se/webp-cloud/visual-effects/ 看到。

    2 条回复    2023-08-16 20:33:40 +08:00
    flyqie
        1
    flyqie  
       2023-08-16 16:39:55 +08:00
    总感觉。。。

    有点像 imgproxy.net 里的某个功能?
    n0vad3v
        2
    n0vad3v  
    OP
       2023-08-16 20:33:40 +08:00
    @flyqie 看了一下发现还真有点像 不过他们价格好贵哇,起步价就是 499USD/yr (而且还有并发限制)

    我们 WebP Cloud 的话提供免费额度(中小型网站的话免费 Plan 基本就已经可以 cover 了),且没有并发限制,所有功能对所有用户都开放(付费和免费唯一的差别就是每日访问数量限制和缓存大小)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5369 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 08:38 PVG 16:38 LAX 01:38 JFK 04:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86