Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从任意字符串生成图像_Javascript_Image Processing_Dynamic Image Generation - Fatal编程技术网

Javascript 从任意字符串生成图像

Javascript 从任意字符串生成图像,javascript,image-processing,dynamic-image-generation,Javascript,Image Processing,Dynamic Image Generation,我见过很多图像到ascii艺术转换器,但我需要的是更复杂一点。与使用ascii字符创建的马赛克图像不同,我需要能够使用任意长度的预定义字符串集作为马赛克图块 我已经在谷歌上搜索了一段时间,但我甚至不知道如何构造我的查询?有这样的事吗?如果它在生成图像时不使用副本,那么它将获得额外的好处。不太适合堆栈溢出,但这是一个有趣的项目。所以我试着找点乐子看看我能走多远 我认为这可以归结为: 计算一组ASCII字符的灰度值 计算每个字符串的“最佳拟合” 重复2。直到完成 我不认为“没有副本”是可行的,除非你

我见过很多图像到ascii艺术转换器,但我需要的是更复杂一点。与使用ascii字符创建的马赛克图像不同,我需要能够使用任意长度的预定义字符串集作为马赛克图块


我已经在谷歌上搜索了一段时间,但我甚至不知道如何构造我的查询?有这样的事吗?如果它在生成图像时不使用副本,那么它将获得额外的好处。

不太适合堆栈溢出,但这是一个有趣的项目。所以我试着找点乐子看看我能走多远

我认为这可以归结为:

  • 计算一组ASCII字符的灰度值
  • 计算每个字符串的“最佳拟合”
  • 重复2。直到完成
  • 我不认为“没有副本”是可行的,除非你有非常小的图像和大量的候选字符串。这就是我想到的,用我的头像和我当前的徽章作为字符串列表。(我排除了我的“c”徽章;不知何故,我的程序决定这是“最适合”大补丁的,这不是很吸引人。注意:不要包含1个字符的字符串。)

    QUORUMQUORUMAUTO传记作者QUORUMQUORUMQUORUMQUORUMJONGWAREQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUOR
    UmQuorUmQuorUmQuorUmAutoBiographerQuorUmQuorUmQuorUmSupporter QuorUmQuorUmQuorUmRootReader QuorUmQu
    OrumQuorumAuto传记作者QuorumQuorumQuorumQuorumQuorumQuorumAuto传记作者法定人数
    QUORUMQUORUMA自动传记作者QUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMA自动传记作者QUORUMQUORUMQUORUMA
    自传作者自传作者自传作者
    鲁姆库鲁姆自传作者
    自动传记作者QuorumQuorumQuorumQuorumJongwareQuorumQuorum评论员
    自传作者自传自传
    自传作者QuorumQuorumpRoof读者JongwareQuorumQuorumQuorumQuorumQuorumQuorumQuor
    UMQUORUMQUORUMORUMORBARDJONGWAREQUORUMPOINTERSUFFRAGEORUMQUORRU
    MQUorumqourumjongwareqourumautobiographers论坛评论员党团评论员
    UormumQuorummortArbord自传作者社区组织批判性批判性批判性批判性批判性批判性批判性批判性批判性批判性批判性批判性批判性批判性批判性批判性批判性批判性批判性批判性
    UMQUORUMQUORUMQUORUMQUORUMAUTO传记作者Jongware Cleanup支持投资公司批评清理
    Uorumquorumquorumquorumquoruma自动传记作者国家清理狂热投资者批评清理
    UorumQuorumQuorumQuorumAuto传记作者评论格式支持评论格式
    QUORUMQUORUMQUORUMQUORUMQUORUMQUORUMAUTO传记作家批判性评论支持者投资者狂热者
    QUORUMQUORUMQUORUMQUORUMQUORUMQUORUMAUTO传记作家评论员QUORUMDEPUTYQUORM
    QUORUMQUORUMQUORUMQUORUMQUORUMQUORUMAUTO传记作者评论投资者
    ORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUM评论员批评巡逻QUORUMQUORUMquo
    自传作家批判性批评巡逻
    乌鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆
    乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库乌姆库
    鲁姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆库姆
    ORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUM评论员章程清理小组委员会清理QUORUMQUORUMQUOR
    UmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUmQuorUm
    Orumquorumquoruma自传作者社区批评形成JongwareJongwarequorumquo
    RumqourumqourumAuto传记作家CommentatorCriticinVestorJongwareJongwareqourumqour
    UMQUORUMQUORUMA自动传记作者对已形成的清除QUORUMQUORUMQUOR进行了批评
    UMQUORUMQUORUMQUORUMQUORUMQUORUMDEPUTYSUPPORTERINVISTOR宪法核心小组QUORUMQUORUMQUORUMQUORUMQUORUMQU
    自动传记作家批判性投资者批判性支持
    RumQuorumQuorumQuorumQuorumQuorumAuto传记作者投资者清理QuorumQuorumQuorumQuorumQuor
    umquorumquorumquorumquorumquorumquorumquorumquorumquorumquorumquo
    RUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQU评论员投资者QUORUMQUORUMQUORUMQUORUMQUORUMQU
    ORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQ评论员投资者向上清理QUORUMQUORUMQUORUMQ
    Uorumquorumquorumquorumquorum评论员投资者Jongwarequorumquorumquorumquorum法定人数
    QUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORRU
    MQUorumQuorumQuorumQuorumQuorumQuorumQuorumAuto传记作者SuffrageQuorumQuorumQuorumQuorumquo
    鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库
    鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库鲁姆库
    RUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORUMQUORRU
    
    你得眯一点眼睛;小尺寸时,它看起来像这样:

    下面是我如何创建它的

    第一步:找到合适的图像

    第二步:转换为灰度

    步骤3:将灰色转换为极端。此步骤旨在确保输入范围(灰度值)使用0到255的完整范围

    步骤4:调整图像大小以获得最佳匹配。我选择了80x40,故意将图像压缩了一半。这是因为“文本”通常高于其宽度。不同的字体需要不同的纵横比!
    80
    是每行的字符数,
    40
    是总行数

    我使用Photoshop完成上述步骤,只是因为我不想为其编写代码。这并不难,只要你有权访问原始图像数据,但这是一项大量的工作,并不有趣

    中间步骤,放大400%,以便可以看到像素:

    第5步:找到一种单间距位图字体。我在网上的某个地方找到了一个不错的8x8。也许更大的尺寸可能会更好,但只是很小,因为限制因素是字符串,而不是字体

    步骤6:计算每个ASCII字符的“灰色”值。这是黑色像素数除以总像素数。为了更好的排列,我将每个字符的结果除以找到的最大值,因此最小值是
    0
    (对于空格),最大值是
    1
    (正好是
    M
    ,但它取决于字体)。然后我将数值乘以