# 如何在一级市场发行NFT（2）：NFT图片生成


By [Untitled](https://paragraph.com/@0xe790fd5978a3dbe54b4fc7b74e3adc2ae3cf572c) · 2023-03-22

---

在之前的文章[如何在一级市场发行NFT系列（1）：区块链合约开发](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483687&idx=1&sn=b1843982bf62367ee59b78ddda91c3a5&chksm=fb04371bcc73be0d75bfb7272b17604139d98e2e560bdde40859af9d44a431130f80176855ea&scene=21#wechat_redirect)中我们已经完成了对于区块链合约代码的开发，并在[当你在买NFT时，你买到的究竟是什么？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483721&idx=1&sn=06e96729063655a2f103143b007a8707&chksm=fb043775cc73be6365d1499081073977798f86a5cba98d065bb7efdb68a9b32a91d8fce998a0&scene=21#wechat_redirect)中为大家讲解了NFT的“图片”到底是什么，在本文中，我们将会学习如何生成NFT图片并将其上传在IPFS中从而映射在token上。

强烈建议先完成上述篇文章的阅读，再读本文，否则会有大量的内容无法连续理解。

目前主流的NFT项目，都是有数千个图片，每个图片大同小异，表情、配饰、颜色等存在差异，这些图片肯定不是一个个画出来的，否则工作量极大，它们都是通过脚本代码自动生成的。

我们使用一套开源的图片生成工具[https://github.com/HashLips/hashlips\_art\_engine，它可以实现将多个图层进行重叠合成一张图片，且每种图层可设置出现概率的权重。](https://github.com/HashLips/hashlips_art_engine%EF%BC%8C%E5%AE%83%E5%8F%AF%E4%BB%A5%E5%AE%9E%E7%8E%B0%E5%B0%86%E5%A4%9A%E4%B8%AA%E5%9B%BE%E5%B1%82%E8%BF%9B%E8%A1%8C%E9%87%8D%E5%8F%A0%E5%90%88%E6%88%90%E4%B8%80%E5%BC%A0%E5%9B%BE%E7%89%87%EF%BC%8C%E4%B8%94%E6%AF%8F%E7%A7%8D%E5%9B%BE%E5%B1%82%E5%8F%AF%E8%AE%BE%E7%BD%AE%E5%87%BA%E7%8E%B0%E6%A6%82%E7%8E%87%E7%9A%84%E6%9D%83%E9%87%8D%E3%80%82)

如上图，layers文件夹是用来存储生成图片的图层物料，一级文件是图层属性，二级文件则是这个属性下的样式种类，每个具体图层的文件命名是 名称 + # + 数字，这个数字即该种类在属性下出现的概率权重。

在configs中的growEditionSizeTo设置总共要生成多少张图片，layerOrder中则设置每一类图层的叠加顺序，如下图表示先生成“背景”图层，再叠加“二层”，最后叠加“三层”。

---

*Originally published on [Untitled](https://paragraph.com/@0xe790fd5978a3dbe54b4fc7b74e3adc2ae3cf572c/nft-2-nft)*
