闲来无事撸了个图片小工具玩玩 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
uc2664360

闲来无事撸了个图片小工具玩玩

  •  
  •   uc2664360 May 28, 2019 6005 views
    This topic created in 2538 days ago, the information mentioned may be changed or developed.

    功能是将图片转成字符画,独乐乐不如众乐乐,就顺便做成了网站,有兴趣的去点点看吧
    地址在此: https://tomcat.blog
    这是一个很无聊的功能,浅水那么久第一次发帖,不喜勿喷

    50 replies    2019-05-29 13:27:12 +08:00
    cwjokaka
        1
    cwjokaka  
       May 28, 2019   1
    hahaha 有意思
    PriestTomb
        2
    PriestTomb  
       May 28, 2019   1
    有点意思。。
    uc2664360
        3
    uc2664360  
    OP
       May 28, 2019
    @PriestTomb
    @cwjokaka
    哈哈谢谢支持,后面准备增加视频转码,需要点时间做
    Takamine
        4
    Takamine  
       May 28, 2019   1
    哈哈哈,一进去就看到满满的 LayUI 风。
    域名很有意思:doge:。
    uc2664360
        5
    uc2664360  
    OP
       May 28, 2019
    @Takamine 谢谢支持,LayUI 使用简单也挺好看。刚看日志后台有一个 bug,我要去查查
    JackeyGao
        7
    JackeyGao  
       May 28, 2019   6
    这么巧。。。

    我也做了一个, 用的 jp2a

    http://jp2a.herokuapp.com
    IsaacYoung
        8
    IsaacYoung  
       May 28, 2019   1
    不错
    uc2664360
        9
    uc2664360  
    OP
       May 28, 2019
    @JackeyGao 握爪。你这个点子很好啊还带彩色的,GET 到了后面我也加上,哈哈
    FreshUncle
        10
    FreshUncle  
       May 28, 2019   1
    试了两次,提示服务器错误
    zek
        11
    ek  
       May 28, 2019 via Android   1
    一直服务器繁忙
    sindri
        12
    sindri  
       May 28, 2019   1
    服务器太忙了
    gz911122
        13
    gz911122  
       May 28, 2019   1
    好用
    收藏了

    顺便说下 楼主这个域名真的 6
    uc2664360
        14
    uc2664360  
    OP
       May 28, 2019
    @FreshUncle
    @zek
    @sindri
    嗯好的,我也看到日志了报错。我会尝试修复的,新写的程序,没怎么经过严苛测试,人多就开始抵不住了。
    图像处理太多爆内存了,分配了 2G 还不够用,我会尝试优化下。
    gz911122
        15
    gz911122  
       May 28, 2019   1
    @uc2664360 顺便问下,服务器国内的嘛 多少钱什么配置哎 有没有推荐的..
    uc2664360
        16
    uc2664360  
    OP
       May 28, 2019
    @gz911122 服务器是香港阿里云,2 核 4G1M,买了一年多了那时候好像是 3 年一千多,做活动买的。
    我只买过几个阿里云的服务器也说不上推荐,弄个小站玩玩 1 核 1G1M 带宽基本够用了,如果想省去备案麻烦最好买香港或者国外的。
    strugglexiang
        17
    strugglexiang  
       May 28, 2019 via Android   1
    我只看到域名
    quadrapop
        19
    quadrapop  
       May 28, 2019   1
    之前有过这个想法,一直没搞,楼主这个可以的,域名是亮点
    hereIsChen
        20
    hereIsChen  
       May 28, 2019   1
    蛮不错的
    uc2664360
        21
    uc2664360  
    OP
       May 28, 2019
    @quadrapop 看了你的帖子,想法真是一样哈哈,看你把过程写的很详细了,应该已经做出来了吧,赞赞赞
    hoshizukiko
        22
    hoshizukiko  
       May 28, 2019   1
    请稍候?
    azh7138m
        23
    azh7138m  
       May 28, 2019   1
    @JackeyGao ANSI 颜色感人.......取整过于暴力
    shuAS
        24
    shuAS  
       May 28, 2019   1
    可以,不错
    glaucus
        25
    glaucus  
       May 28, 2019 via iPhone   1
    上传了张壁纸,然后就服务器超时了
    laozhongshi
        26
    laozhongshi  
       May 28, 2019   1
    有点意思 不错不错
    uc2664360
        27
    uc2664360  
    OP
       May 28, 2019
    @glaucus 不好意思让你体验不友好了,我这渣渣服务器配置太低,都是图形处理,人一多就应付不过来了。
    还有我的代码也有好多需要优化的地方,晚上回去好好整整流程优化一下。
    uc2664360
        28
    uc2664360  
    OP
       May 28, 2019
    @laozhongshi @shuAS @hoshizukiko @hereIsChen
    感谢支持。第一次做,需要优化的地方还很多,体验不好的地方见谅哈。
    itqls
        29
    itqls  
       May 28, 2019   1
    js 的 不需要服务器
    var cns = $('#canvas')[0];
    var ctx = cns.getContext('2d');
    var cnsd = $('#imgdata')[0];
    var ctxd = cnsd.getContext('2d');

    var text = ["", "", "#", "", "", "", "", "", ".", "", "!", ";", "^", ",", ".", " "];
    var width = 1000;
    var height = 600;
    cns.width = width;
    cns.height = height;

    function img2Text(g) {
    var i = g % 16 === 0 ? parseInt(g / 16) - 1 : parseInt(g / 16);
    return text[i];
    }

    function getGray(r, g, b) {
    return 0.299 * r + 0.578 * g + 0.114 * b;
    }

    function initAndDrawText(img) {
    var rem = img.width / img.height;
    cns.width = height * rem;
    cns.height = height;
    cnsd.width = cns.width;
    cnsd.height = cns.height;
    ctx.clearRect(0, 0, cns.width, cns.height);
    ctxd.clearRect(0, 0, cnsd.width, cnsd.height);
    ctxd.drawImage(img, 0, 0, cnsd.width, cnsd.height);
    var imgData = ctxd.getImageData(0, 0, cnsd.width, cnsd.height,10);
    var imgDataArr = imgData.data;
    var textList = [];
    for (var h = 0; h < cns.height; h += 12) {
    for (var w = 0; w < cns.width; w += 10) {
    var index = (w + cns.width * h) * 4;
    var r = imgDataArr[index + 0];
    var g = imgDataArr[index + 1];
    var b = imgDataArr[index + 2];
    var gray = getGray(r, g, b);
    textList.push(img2Text(gray), w, h + 10);
    }
    }

    var index = 0;
    var timer = setInterval(function() {
    for(i=0;i<10;i++){
    ctx.fillText(textList[index*3],textList[index*3+1],textList[index*3+2]);
    index++;
    }
    if (index > textList.length/3) {
    clearInterval(timer);
    }
    }, 1);

    }
    itqls
        30
    itqls  
       May 28, 2019   1
    @itqls emmm 好吧还是要的,跨域问题
    zdnyp
        31
    zdnyp  
       May 28, 2019   1
    @itqls 你这个咋运行 /脸红
    xh520630
        32
    xh520630  
       May 28, 2019   1
    图太大了 ...
    itqls
        33
    itqls  
       May 28, 2019   1
    @zdnyp

    js 扔服务器上,随便搞个界面
    function loadImg(){
    var img = new Image();
    img.src = 'xxx.jpg';
    img.Onload= function(){
    initAndDrawText(img);
    }
    }
    wlfeng
        34
    wlfeng  
       May 28, 2019   1
    可以的,点个赞
    brust
        35
    brust  
       May 28, 2019   1
    域名有点吊
    psychoo
        36
    psychoo  
       May 28, 2019   1
    又是请稍后
    uc2664360
        37
    uc2664360  
    OP
       May 28, 2019
    @psychoo @brust @wlfeng
    感谢支持。现在用的人太多,服务器要炸了,带宽明显不够用,现在访问已经变慢了。
    joshua7v
        38
    joshua7v  
       May 28, 2019   1
    绘制中那个动画
    竟然没有水平居中...
    xiaoke0718
        39
    xiaoke0718  
       May 28, 2019   1
    用那个语言开发?
    Sadow
        40
    Sadow  
       May 28, 2019   1
    厉害了
    uc2664360
        41
    uc2664360  
    OP
       May 28, 2019
    @joshua7v 很细心啊,是要调整调整了

    @xiaoke0718 后台是 Java

    @Sadow 感谢支持
    sks4728
        42
    sks4728  
       May 28, 2019   1
    域名不错
    xiangyuecn
        43
    xiangyuecn  
       May 28, 2019   1


    看得过去
    opengps
        44
    opengps  
       May 28, 2019   1
    牛逼,三种结果,字符多点那么逼真
    ouou8
        45
    ouou8  
       May 28, 2019   1
    不错不错 支持楼主一下子。
    同时想问问楼主的 ssl 证书哪里申请的?免费的吗
    uc2664360
        47
    uc2664360  
    OP
       May 29, 2019
    @opengps @tangbao 感谢支持

    @ouou8 证书是阿里云申请的免费 SSL 证书
    Scarborough
        48
    Scarborough  
       May 29, 2019   1
    有趣
    yyt6801
        49
    yyt6801  
       May 29, 2019   1
    域名给赞,见到好几个这种图片转字符的,这个算是还原度辨识度比较高的了
    kcirtap
        50
    kcirtap  
       May 29, 2019 via iPhone   1
    帮顶,有意思
    About     Help     Advertise     Blog     API     FAQ     Solana     2660 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 100ms UTC 15:59 PVG 23:59 LAX 08:59 JFK 11:59
    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