标题:给爱知乎添加拼图模式(mosaic mode)
只看楼主
yaojunquan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-6-12
结帖率:0
 问题点数:0 回复次数:0 
给爱知乎添加拼图模式(mosaic mode)
博客: http://

之前 爱知乎 的 日历页面 采用的封面视图,每天的封面用的是当天内容的最后一张图片,今天突发奇想用当天所有的图片来拼成封面。

因为没有降低图片质量,所以现在加载日历页面的图片会比之前慢不少……
<!-- more -->
因为是免费托管在 京东的JAE上 ,所以采用GraphicsMagick之类作为后端的module都被排除了,不然我会使用 gm ,于是我使用了国人开发的 images,使用起来非常简单,虽然还有些问题,不过能满足我的需求。

附上代码:

function mosaic(json) {
  var size = Math.floor(Math.sqrt(json.news.length));
  if (size > 6)size = 6;
  var length = size * size;
  var width = 600 / size;
  var image = images(600, 600);
  var idx = 0;
  json.news.forEach(function (item, i) {
    if (i >= length) return;
    request.get(item.image, { encoding: null }, function (err, res, data) {
      if (err || res.statusCode != 200 || data.length < 1000) return;
      image.draw(images(data).size(width, width), i % size * width, Math.floor(i / size) * width);
      if (++idx == length) {
        fileUploader.uploadData(image.encode('jpg'), 'mosaic/' + json.date + '.jpg');
        log("====== mosaic: " + json.date + " ======");
      }
    });
  });
}
搜索更多相关主题的帖子: 图片 京东 images 突发奇想 function 
2014-06-24 11:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-433305-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.121197 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved