当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

create-img

自动不同大小,形状,颜色的图片
授权协议 MIT License
开发语言 JavaScript
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 张子墨
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

create-img

自动不同大小,形状,颜色的图片

启动生成图片服务

npm install 
npm start

打开http://localhost:3000

注意:koa-logger@2 需要node >7.6版本,否则会报错不支持async函数

前言

实际前端工作中,当UED没有给到确定的图片时,前端需要自己模拟一个图片来实现页面占位。于是写了份自动生成不同大小形状图片的服务。

code地址为https://github.com/raoenhui/create-img/tree/master/server

demo访问地址http://img.frontendx.cn

原理

主要用到的技术是koa、koa-router和canvas。

  • 用koa启动一个webserver服务,用了logger中间键来方便查看记录。
const logger = require('koa-logger');
const koaBody = require('koa-body');

const Koa = require('koa');
const app = module.exports = new Koa();

// middleware

app.use(logger());

app.use(koaBody());

// listen

if (!module.parent) app.listen(3000);
  • 用koa-router获取用户访问的url,url中包含大小、形状和颜色信息,并调用canvas画图片。
const router = require('koa-router')();
// route definitions

router.get('/:size/:shape/:bg', list)
  .get('/', list);

app.use(router.routes());

/**
 * Post listing.
 */

 function list(ctx) {
  var sizeAry=ctx.params.size?ctx.params.size.split('x'):[200,200];
  var shape=ctx.params.shape?ctx.params.shape:'rectangle'; //'rectangle||circle'
  var bgColor=ctx.params.bg?`#${ctx.params.bg}`:`#e83632`;

  var imgBuffer=getCanvas({width:Number(sizeAry[0]),height:Number(sizeAry[1]),shape,bgColor});
  ctx.type="image/jpg"
  ctx.status = 200;
  ctx.body = imgBuffer;
}
  • 用canvas根据不同大小、形状和颜色信息画出图片。
var Canvas=require('canvas');
module.exports = function (params) {
  let {shape,width,height,bgColor}=params;
    var canvas = new Canvas(width,width);
    var  ctx = canvas.getContext('2d');
  if(shape=='circle'){
    //圆形
    ctx.beginPath();
    ctx.fillStyle = bgColor;
    ctx.arc(width/2, width/2, width/2, 0, 2*Math.PI, true);
    ctx.fill();

    }else{
      //矩形
          ctx.fillStyle = bgColor;
         ctx.fillRect(0,0,width,height);
    }
  return canvas.toBuffer();
};

第三步 demo

如想获取宽高为200px,颜色为#e83632的圆形。http://i.frontendx.cn/200x200/circle/e83632

注:http://i.frontendx.cn/宽x高/形状/颜色

![website]({{ site.url }}/images/180501/demo.png)

相关链接:

Happy coding .. :)

  • 这个话题给大家深入讲讲Image.createImage(width,height); 我始终认为:深入的理解一种机制,然后才有灵活多变的应用!如果你不能深入的理解它,那么也只会死板的套用,如果你想做个copy代码的程序员,那么就没必要看我的文章。 Image.createImage(width,height);这个方法到底是做什么用的? 我们先看下doc里的一段说明: An immutable

  • 1、格式转换: raw格式的磁盘转qcow2的磁盘: # qemu-img convert  -f raw -O qcow2  disk_name.raw   disk_name.qcow2 qcow2格式的磁盘转raw的磁盘: # qemu-img convert  -f qcow2 -O raw   disk_name.qcow2  disk_name.raw 格式转化的时候查看进度 # qe

  • 2.2 步骤 实现此案例需要按照如下步骤进行。 步骤一:创建一个新的镜像盘文件 qemu-img命令格式:qemu-img 命令 参数 块文件名称 大小 [root@room9pc01 ~]# qemu-img create -f qcow2 disk.img 50G //qcow2为创建的格式 Formatting 'disk.img', fmt=qcow2 size=53687091

  • 磁盘镜像的基本管理 1)新建两个不同格式的磁盘镜像文件,大小均为10G [root@kvmsvr ~]# mkdir -p /data/images [root@kvmsvr ~]# cd /data/images/ [root@kvmsvr images]# qemu-img create -f raw disk1.raw 10G Formatting 'disk1.raw', fm

  • 1. 简介 本文介绍使用qemu-img创建qcow2格式磁盘文件的预分配(preallocation)策略,及对虚拟磁盘性能的影响。 2. qcow2磁盘及预分配策略介绍 查看qemu-img手册,可以看到关于qcow2格式磁盘文件和预分配策略的简要介绍: qcow2 QEMU image format, the most versatile format. Use it

  • qemu-img是QEMU的磁盘管理工具,在qemu-kvm源码编译后就会默认编译好qemu-img这个二进制文件。qemu-img也是QEMU/KVM使用过程中一个比较重要的工具,本节对其用法和实践使用方法进行介绍。 本文先介绍qemu-img的基本命令及语法,这个也可以通过qemu-img --help得到。然后简单介绍创建和使用kvm虚拟机镜像文件的一般过程。 qemu-img基本命令 1、

  • 一、基础概念       KVM 虚拟化中使用的镜像格式通常为 RAW 和 QCOW2 两种格式.   qcow2特点: qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像。它也是可以用一个文件的形式来表示一块固定大小的块设备磁盘。与普通的 raw 格式的镜像相比,有以下特性:占用空间小,即使文件系统不支持空洞(holes);支持写时拷贝(COW, copy-on-write),镜像文件只

  • 1.JS加载图片 import img from '../../image/xxx.png' 2.JS使用图片 const item = [{ type:"bar", barGap:"5%", barMaxWidth:"20", barMinHeight:"10", itemStyle:{ normal: { label:{ show:tru

  • 1. 引入图片:import imgUrl from ‘…/src/a.jpg’, render() { return ( <div > <img src={imgUrl } /> </div> ); } 2. 利用webpack: render() {

  • 1. 制作ubuntu镜像qcow2 创建qcow2硬盘文件 root@node2:/opt# qemu-img create -f qcow2 ubuntu-server.qcow2 20G Formatting 'ubuntu-server.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_ref

  • ### version  lake@lake-Latitude-5491:~/qemu$ qemu-system-i386  -version  QEMU emulator version 2.11.1(Debian 1:2.11+dfsg-1ubuntu7.10) Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project devel

  • 参考:moonfly:KVM虚拟机导出最小化体积的qcow2镜像文件 qemu不能直接将iso转化成qcow2或者raw,但是使用iso创建虚机后会产生qcow2/raw作为虚机的硬盘,因此,可以创建一个qcow2/raw的硬盘,然后再这个硬盘上创建虚拟机,安装完系统后,关闭虚拟机,将写入了系统的qcow2/raw文件压缩导出,即可完成需要的转换。 1. 创建qcow2 qemu-img crea

 相关资料
  • 我在一个项目中使用ChartJS,我需要为条形图中的每个条形图使用不同的颜色。 下面是条形图数据集的示例: 有没有什么方法可以把每个酒吧涂成不同的颜色?

  • 我有一个RecycerView,在那里我创建了12个ImageButton默认情况下,它们都是黑色的,因为我为imageButton创建了一个具有黑色纯色的自定义形状。自定义形状设置为imageButtons背景 形状: 这就是ImageButtons现在的样子。但它们都有相同的颜色,这不是我想要的。 } 这是来自我的RecycerView适配器类,我在其中infalte layout.item_

  • 问题内容: 在图中,如何用不同的颜色为高于阈值的所有值上色?像高于均值+标准或均值+ 2 * std的所有内容一样? 问题答案: 使用a是正确的方法,但是您也可以使用掩码数组在一行代码中完成一个简单的版本: 这样做的弊端在于它会使用过滤后的数据绘制原始数据,因此有时基础曲线可能会显示出来,具体取决于渲染方式。我在这里把红线弄得有点粗,但是我不确定它是否有所作为。好处是,它基本上是一行,阈值为。 这

  • 本文向大家介绍Python+matplotlib绘制不同大小和颜色散点图实例,包括了Python+matplotlib绘制不同大小和颜色散点图实例的使用技巧和注意事项,需要的朋友参考一下  具有不同标记颜色和大小的散点图演示。 演示结果: 实现代码: 总结 以上就是本文关于Python+matplotlib绘制不同大小和颜色散点图实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他

  • 我正在制作一个应用程序,它需要一些数据来制作一个条形图,但条形的颜色必须与它所代表的数据相关。 想象一下我有这种数据:香蕉430水梅隆300 现在我要做一个条形图,我想用黄色颜料画BANANA酒吧,用绿色颜料画WATER MELLON酒吧。我正在使用java中的JFreeChart库。我的研究使我制作了自定义渲染器,但如果我制作自定义渲染器的话,颜色会随机出现在条形图上。有什么解决办法吗?

  • 我被这个问题卡住了: 当我点击一个形状(有一个矩形和圆形列表)时,它会改变它的颜色。但当我点击外面时,它不会变回来。 更具体地说,当我只画1个形状时,它工作!但是,例如,我绘制一个蓝色矩形、一个紫色圆和一个红色矩形,并单击其中一些形状,如红色矩形,每个形状都将其颜色改为蓝色。当我再次单击外部时,它会将每个形状的颜色更改为默认颜色(黑色)。

  • 我使用的是Flatter,状态栏的设计是黑色的,状态栏的图标颜色必须是白色,那么如何在Flatter中更改状态栏图标的颜色?

  • 因此,我有一个SurfaceView类绘制所有对象。 例如,当我画一个圆时,我必须指定一个大小 有没有办法根据屏幕分辨率和密度的大小来调整尺寸 因为我在画圆时,我希望它在低分辨率设备上的大小与在高分辨率设备上的大小相同。 当绘制半径为50px的圆时,较小屏幕上的圆比较大屏幕上的圆大。 有什么想法吗? 编辑:我知道在创建一些布局时,我可以使用密度像素。但我不是在做布局,我是在surfaceview上