V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qgy18
V2EX  ›  程序员

像素化你的代码

  •  
  •   qgy18 · 2015-09-20 23:43:00 +08:00 · 5067 次点击
    这是一个创建于 3359 天前的主题,其中的信息可能已经有所发展或是发生改变。

    你能想象下面这张图包含了 93800 个字符的 jQuery v1.10.2 代码么?

    jquery

    前几天凌晨突然想到这个 idea 的,当时立马爬起来实现了一下,觉得这又是一个除了好玩并没什么卵用的东西。后来被同事告知,许多年前国外已经有人这么玩了。

    代码用 JS 实现,现代浏览器应该都可以运行。编码 / 解码功能加起来不到 1000 个字符,然并卵。

    下面有几个链接大家可以玩玩。

    jQuery 图片解码:
    http://qgy18.imququ.com/png-code/jquery.html

    带伪装的图片解码:
    http://qgy18.imququ.com/png-code/ququ.html

    编码 / 解码工具:
    http://qgy18.imququ.com/png-code/code.html

    博客介绍文章:
    https://imququ.com/post/code2png-encoder.html

    33 条回复    2015-09-21 18:33:01 +08:00
    xujialiang
        1
    xujialiang  
       2015-09-20 23:47:06 +08:00
    水印也是这么做滴。。
    xujialiang
        2
    xujialiang  
       2015-09-20 23:47:25 +08:00
    我说的是像水印签名
    Strikeactor
        3
    Strikeactor  
       2015-09-20 23:59:03 +08:00
    这算不算丧心病狂版的二维码
    YuJianrong
        4
    YuJianrong  
       2015-09-21 00:55:10 +08:00 via iPad
    很久以前有 blog 实现把代码和 css 放在一张 sprite png 后面,这样图片脚本样式一次性载入降低请求数,不过也只是玩玩并不实用……
    qian19876025
        5
    qian19876025  
       2015-09-21 01:08:55 +08:00
    记得以前 卡巴斯基上有一期 就是讲 某 APT 如何使用类似方法来行动的 不过别人 的图片不会像你这样 可疑
    zonghua
        6
    zonghua  
       2015-09-21 01:36:52 +08:00 via iPhone
    这是什么算法
    qgy18
        7
    qgy18  
    OP
       2015-09-21 08:17:30 +08:00 via iPhone
    qgy18
        8
    qgy18  
    OP
       2015-09-21 08:18:09 +08:00 via iPhone
    ljbha007
        9
    ljbha007  
       2015-09-21 08:27:36 +08:00
    然而好像并没有什么用
    fengyqf
        10
    fengyqf  
       2015-09-21 08:56:18 +08:00 via Android
    @Strikeactor 可能没有容错,二维码有
    qgy18
        11
    qgy18  
    OP
       2015-09-21 09:00:41 +08:00 via iPhone
    @fengyqf 原理跟二维码不一样,每一个像素点 rgb 24 位全被用来存信息了。
    m939594960
        12
    m939594960  
       2015-09-21 09:02:59 +08:00
    我觉的 这个东西以后会流行为发 H 图的重要途径之一
    m939594960
        13
    m939594960  
       2015-09-21 09:03:23 +08:00
    错了 是种子。。
    qgy18
        14
    qgy18  
    OP
       2015-09-21 09:05:04 +08:00 via iPhone
    @m939594960 -_-# 实际上这图片只要有一点点有损压缩 包含的信息就面目全非了
    wdhwg001
        16
    wdhwg001  
       2015-09-21 09:07:15 +08:00 via iPhone   ❤️ 2
    之前有人研究过,结论是使用单一灰阶和 png 优化工具可以达到接近 gzip 的压缩率…
    接近 gzip …接近 gzip …所以还是没什么鸟用(
    m939594960
        17
    m939594960  
       2015-09-21 09:10:05 +08:00
    @liboyue 贴吧并不能发出这样的图片了。。。
    assassinpig
        18
    assassinpig  
       2015-09-21 09:18:40 +08:00
    能再贴一样其他代码的图么?
    ps:估计肉眼目测的区分度会有点差
    qgy18
        19
    qgy18  
    OP
       2015-09-21 09:20:10 +08:00 via iPhone
    jackjm
        20
    jackjm  
       2015-09-21 09:25:48 +08:00
    PaperBack – How to store data on a single A4/Letter sheet
    https://news.ycombinator.com/item?id=10245836
    riaqn
        21
    riaqn  
       2015-09-21 09:28:04 +08:00
    先压缩成.rar 再编码啊,然后存为 bmp 。
    那样基本和 rar 大小一样。
    ledzep2
        22
    ledzep2  
       2015-09-21 09:28:54 +08:00
    @m939594960 早就有了啦. lu 福利一直都是用这种方式发的. Porn 永远走在科技最前沿.
    Mark24
        23
    Mark24  
       2015-09-21 09:34:09 +08:00
    楼主头像,好纯情的赶脚!!!
    qgy18
        24
    qgy18  
    OP
       2015-09-21 09:42:40 +08:00 via iPhone
    @ljbha007
    是的,其实我写过很多然并卵的东西,比如这个(不适合发在正文):

    http://qgy18.imququ.com/bobo/edit3.html
    ljbha007
        25
    ljbha007  
       2015-09-21 09:44:35 +08:00
    @qgy18
    我居然看了一分钟
    用的什么算法
    qgy18
        26
    qgy18  
    OP
       2015-09-21 09:48:49 +08:00 via iPhone
    @ljbha007 变换区域圆心做椭圆运动。
    ljbha007
        27
    ljbha007  
       2015-09-21 09:50:07 +08:00
    @qgy18 变换椭圆的 x 系数和 y 系数吗
    qgy18
        28
    qgy18  
    OP
       2015-09-21 09:52:37 +08:00 via iPhone
    变换区域是一个正圆,挪动圆心之后,把每条原半径上的点都挪到新的半径上,可能需要插值。最终圆心自身做椭圆运动,这需要大量计算。
    seki
        29
    seki  
       2015-09-21 09:55:18 +08:00
    感觉在容错率上可能会差一点,某几个像素点损坏,或者上传图床的话被二压一下可能数据就损坏了
    qgy18
        30
    qgy18  
    OP
       2015-09-21 09:57:53 +08:00 via iPhone
    @seki 是的 任何有损压缩必坏。
    batilo
        31
    batilo  
       2015-09-21 14:45:47 +08:00
    。。。。。密集恐惧症直接犯了。
    assassinpig
        32
    assassinpig  
       2015-09-21 17:22:29 +08:00
    @m939594960 嗯,可以考虑开一个项目写写了
    jnduan
        33
    jnduan  
       2015-09-21 18:33:01 +08:00
    以前我用同样的思路做了个 java 的 classloader ,然后程序发布出来就是一张图。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   968 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:14 · PVG 04:14 · LAX 12:14 · JFK 15:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.