精华内容
下载资源
问答
  • 图片文件合成器

    2016-04-04 13:00:18
    将dos命令下的copy命令用C#语言编写出来,简单实用
  • 图片合成器

    2015-10-31 08:46:59
    最完美的图片合成器,亲测可用,还可以加水印,设置行数,大家有需要的,就赶紧下载试试吧。
  • Collagelt图片合成器

    2018-12-24 19:57:42
    图片拼贴制造、操作简单、上手容易、用于图片照片组合拼接,适用于各个行业
  • C语言实现自制图片文件合成器

    万次阅读 多人点赞 2021-10-06 10:39:02
    ⛳️自制图片文件合成器 ♥️别着急,先看演示 自制图片文件合成器 1.操作步骤详解——小白跟着也能实现 2.直接上C语言代码 3.讲讲代码中出现的一些方法 wuhu——完工! ♥️别着急,先看演示 图片文件合成器 明明...

     👻前几天有个粉丝疯狂私信我问:“博主,博主,有没有什么办法能将我夜里看的小视频/爱情动作小说给藏起来,藏的越隐蔽越好,我怕我女朋友发现了揍我!”(听后我直乐呵,可见这是位名副其实的妻管严哦~)👻

     😬一开始我是拒绝的,毕竟——我可是个正经人!但是他又是加我VX,又是关注我公众号(看看我主页左侧有二维码哦!)还说我发的博文他几乎都第一时间点赞,评论,收藏支持。瞬间就打动了我,于是我决定帮他一把(咳咳,我可不是因为这些才决定帮助他的,就单纯因为我爱粉丝)!😬

           👇
    👉🚔直接跳到末尾🚔👈 ——>领取专属粉丝福利💖
           ☝️

    认认真真看完本文,你就可以将你的男人之间才懂的“小秘密”藏的稳稳当当哦!

    ♥️别着急,先看演示

    图片文件合成器

    • 🎯🎯明明单纯只是张名为“正经图plus.jpg”的图片,但是当我把图片后缀名改为.zip后,这张图片就变成了一个压缩文件(里面可以放任何你想藏起来的文件!)【是不是很神奇,是不是很隐秘~】🎯🎯
    • 👑👑这样就实现了那位粉丝的愿望——把他的小秘密藏进任何一张很正经很正经的图片里,夜里需要时,可以随时取出使用~👑👑

    💎自制图片文件合成器

    • 希望你会喜欢这个设计。我在下面分享了有关我如何进行此设计的详细教程,并且附带整个设计的完整代码。
    • 你大可直接复制粘贴使用。但是——授之以鱼不如授之以渔,所以希望小伙伴们能跟着我的节奏来,一点点的学习整个设计的各个步骤,相信看到最后,小伙伴们都能做到不仅会用,还知道神奇操作实现的原理哦!

    首先,直接上实操步骤,跟着做就OK了!

    🎉1.操作步骤详解——小白跟着也能实现

    1. 首先,你要创建一个文件夹来放所有需要使用到的文件(本博主创建了个名为“测试”的文件夹【随便你放哪都可以~】);
      在这里插入图片描述

    2. 然后,你需要找到一张用于显示的图片(注意:这张图片用于遮人耳目,找越正经的图越好~);
      在这里插入图片描述

    3. 接下来,你就可以将你所有的资源(不管是图片,视频还是小说文本类型的文件都可,赶紧都拿过来~)都放进此文件夹里了!
      在这里插入图片描述

    4. 将你所有的资源文件压缩成一个压缩包!
      在这里插入图片描述

    5. 最关键,也是最激动人心的时刻——拿出本博主的神器——“神器.exe”,放进此文件夹中,双击运行,按照步骤依此输入图片名,资源压缩包名,合成后的文件名即可!
      在这里插入图片描述
      在这里插入图片描述在这里插入图片描述

    6. 后话——估摸着会有很多小伙伴们看上我演示中显示的资源,我也不含糊,直接给你们(改后缀为.zip就可以发现新世界哦!)
      (因为文件和图片都合并一起了,所以这个图有点大,直接放放不了,所以我上传到百度网盘里了->提取码:GHZ6 【真迫不得已,只能这样了~】)
      点我下载此图片~

    🎅2.直接上C语言代码

    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
    	FILE *f_pic,*f_file,*f_finish;
    	char ch,pic_name[20],file_name[20],finish_name[20];
    	printf("请输入需要合成的图片和文件资源的名称:\n");
    	printf("图片(要加后缀名哦!):");
    	scanf("%s",pic_name);
    	printf("文件(要加后缀名哦!):");
    	scanf("%s",file_name);
     	printf("合成为:");
    	scanf("%s",finish_name);
    	
    	if(!(f_pic = fopen(pic_name,"rb")))
    	{
    		printf("打开图片:%s失败!!!!\n",pic_name);
    		return 0;
    	}
    	if(!(f_file = fopen(file_name,"rb")))
    	{
    		printf("打开文件:%s失败!!!!\n",file_name);
    		return 0;
    	}
    	if(!(f_finish = fopen(finish_name,"wb")))
    	{
    		printf("打开合成文件:%s失败!!!!\n",finish_name);
    		return 0;
    	}
    	
    	while(!(feof(f_pic)))
    	{
    		ch = fgetc(f_pic);
    		fputc(ch,f_finish);	
    	}
    	fclose(f_pic);
    	while(!(feof(f_file)))
    	{
    		ch = fgetc(f_file);
    		fputc(ch,f_finish);	
    	}
    	fclose(f_file);
    	fclose(f_finish);
    	
    	system("pause");
    }
    

    🎃3.讲讲代码中出现的一些方法

    • FILE *fp
    • fp = fopen(文件名, 使用文件方式);

    此函数用于打开文件。需要注意的是:在使用此函数打开一个文件时,如果出错,将返回一个空指针值NULL。所以可以用此信息判断是否成功打开文件。


    • ch = fgetc(fp)

    此函数从打开的文件fp中读取一个字符并送入ch中。


    • fputc(ch, fp)

    此函数将字符(ch的值)输出到fp所指向的文件中去。


    • feof(fp)

    此函数用来判断文件是否真的结束。如果结束,返回值为1;否则为0。


    • fclose(文件指针)

    此函数用于关闭文件。关闭成功返回值为0;否则返回EOF(-1)。

    💝wuhu——完工!

    被逮了也别说是我教的哈(我怕被打)!

    可能某些小白没有c环境,也急需此方法,所以本博主直接将我的exe文件分享给大家(下载下面这张图,操作我相信你肯定会的~):
    请添加图片描述

    🌻🌻如果你从本文中学到了知识,喜欢它,那么我很荣幸。希望你可以将本文分享给你的小伙伴,点个赞&&收藏本文,并且,欢迎广大读者在评论区探讨技术,或是提出你们真诚的意见。🌻🌻

    👇🏻可通过点击下面——>添加 私人VX号👇🏻

    【请标明来自CSDN,会拉你进入技术交流群(群内涉及各个领域大佬级人物,任何问题都可讨论~)--->互相学习&&共同进步(非诚勿扰)】

    请添加图片描述

    展开全文
  • 谷歌浏览批量图片下载插件-合成pdf 开发环境:谷歌浏览;Fatkun图片批量下载 – PRO插件 插件下载: 打开谷歌浏览,然后找到多选设置的那一栏。 选择更多工具>>>扩展程序。点击进入插件安装界面 ...

    谷歌浏览器批量图片下载插件-合成pdf

    开发环境:谷歌浏览器;Fatkun图片批量下载 – PRO插件

    插件下载:图片批量下载插件

    打开谷歌浏览器,然后找到多选设置的那一栏。
    在这里插入图片描述
    选择更多工具>>>扩展程序。点击进入插件安装界面
    在这里插入图片描述
    可以开启【开发者模式】把插件拖动到插件安装界面
    在这里插入图片描述
    通过以上的步骤即可完成插件的安装
    在需要的网页上【右键】
    在这里插入图片描述
    在批量图片下载页面
    在这里插入图片描述
    可以进行图片资源的筛选、图片连接导出
    在这里插入图片描述
    批量图片可以合成pdf:在图片的文件夹,选中需要的图片,选择打印,打印机选择【Microsoft Print to PDF】;点击打印即可完成,生成pdf
    在这里插入图片描述

    展开全文
  • 文章目录背景 背景 我们知道,地图分为栅格和矢量两种。以往基本都是栅格地图,后来随着技术发展和地理数据不断积累,矢量地图慢慢开始流行。现在网络上看到的百度、高德、腾讯地图...百度地图个性在线编辑旧版 ...

    背景

    我们知道,地图分为栅格和矢量两种。以往基本都是栅格地图,后来随着技术发展和地理数据不断积累,矢量地图慢慢开始流行。现在网络上看到的百度、高德、腾讯地图等,基本都是基于矢量切片来显示的,而遥感卫星影像,自然还是栅格切片。

    当我们做地理相关的研究时,数据获取是一个重要的障碍。土地利用数据一般是很难拿到的,因为这类数据是保密数据。那么我们如果想拿到某个地物的空间分布数据,如何实现呢?

    其实在早期,我看了一篇知乎的文章,《利用在线地图与审查元素快速获取超高清城市肌理》,这篇文章提到了通过百度地图个性编辑器,加上修改地图元素的body尺寸,再利用chrome的调试器的截图功能,可以获取到一副范围很大的专题图。如图:
    在这里插入图片描述
    当时的我就震惊了,因为这和我本科的毕设论文有点相关(城市边界识别,基于建设用地栅格数据)。当时我就在想,如果可以通过百度地图的个性化配置,获取建筑二值图,那么我可以把研究扩展到全国范围!(当然,这只是一个想法)

    百度地图个性在线编辑器旧版

    通过配置地图的style json,我们是可以拿到渲染后的栅格切片的,那么只要我们把所有切片按照x和y进行合并,就可以合成一张大范围的高清的专题图!

    基于此,我认为这套想法如果落地,可以满足以下几点需求:

    1. 获取web墨卡托坐标系下的某地区的遥感影像图
    2. 获取web墨卡托坐标系下的某地区的样式自定义的专题图
    3. 通过栅格矢量转换技术,可以实现某一要素的提取
    4. 为地理相关研究提供网络地图数据源

    因此,我着手开发了百度地图个性地图瓦片下载合成器,开源地址为Baidu-Styled-Tile-Downloader
    先给大家上几个效果图:

    效果

    以北京市朝阳区为例,下面三幅图依次是遥感影像、绿地和水体。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    项目架构

    • ChinaAD.py (中国行政区划相关)
    • CoordTransform.py (坐标系转换相关)
    • LngLatToPixel.py(wgs84经纬度转像素坐标)
    • TileDownloader.py (核心类,瓦片下载流程)
    • TileXY.py (wgs84经纬度转瓦片号)
    • __init__.py (运行主函数)
    • config.py (配置文件)
    • drawBoundary.py(绘制行政边界)
    • getBounds.py (获取区划外接矩形范围)

    原理

    首先,根据用户输入的行政区划名获取该区域的geojson数据。进一步转化成最小外接矩形的西南(左下)和东北(右上)的经纬度。

    其次,根据外接矩形范围获取瓦片号,并存入队列Task。多线程执行爬取任务。

    再次,当Task不为空时,根据用户配置的style json,根据压缩规则(processLabel函数)进行压缩,构建待爬瓦片的URL。

    然后,爬取URL,将response.content以二进制的格式写入图片文件,并以瓦片号x和y为规则命名图片。

    此后,待Task为空,遍历所有图片,解析出瓦片号x和y,并根据x和y,在对应的图片绘制,进行图片的拼接操作,最终输出完整的合成图。

    最后,通过行政区划的经纬度坐标,转成以图片左上角为原点的像素坐标,利用opencv-python库绘制在图片上,保存图片。

    wgs84经纬度转瓦片号原理

    这里面其实涉及两步,第一步是wgs84经纬度转web墨卡托投影坐标。第二步是web墨卡托投影坐标转瓦片坐标。

    我们先大体了解下百度的栅格瓦片是如何编号的。借用一张图片表示:

    可以看出,百度切片的坐标原点是经纬度都为0的位置。x为东西方向,y为南北方向。可以看到,在level为2的时候,中国基本包含在(0,0)瓦片内,部分在(1,0)中。

    其次,我们来了解下wgs84经纬度投影到web墨卡托坐标系下的平面坐标原理。

    这里直接贴出leaflet墨卡托投影的源码,已经改为python版,市面上大部分84转web墨卡托的代码我试了下,都和百度的有较大差异,这里我认为百度的投影坐标系可能在web墨卡托基础上做了进一步的修改。其实百度提供了js api中可以将经纬度转平面坐标,但是没有python版的。

      def WGS84_to_WebMercator(self, lng, lat):
            '''
            实现WGS84向web墨卡托的转换
            :param lng: WGS84经度
            :param lat: WGS84纬度
            :return: 转换后的web墨卡托坐标
            '''
            # 该代码参考leaflet墨卡托投影源码,与百度地图的最为接近
            # source https://www.jianshu.com/p/778fc3e9f889
            R = 6378137
            R_MINOR = 6356752.314245179
            
            d = self.pi / 180
            r = R
            y = lat * d
            tmp = R_MINOR / r
            e = math.sqrt(1 - tmp * tmp)
            con = e * math.sin(y)
            ts = math.tan(self.pi / 4 - y / 2) / math.pow((1 - con) / (1 + con), e / 2)
            
            y = -r * math.log(max(ts, 1E-10))
            x = lng * d * r
            
            # 纠偏,不加这俩值投影后的坐标和百度的平面坐标是不一样的
            x+=800
            y+=650
            return x, y
    

    获取到平面坐标后,再根据平面坐标转瓦片坐标的原理,得到瓦片坐标。
    在这里插入图片描述
    完整代码如下:

    #coding = 'utf-8'
    from CoordTransform import LngLatTransfer
    import math
    
    # wgs84坐标转百度地图瓦片编号xy
    # 公式参考http://cntchen.github.io/2016/05/09/%E5%9B%BD%E5%86%85%E4%B8%BB%E8%A6%81%E5%9C%B0%E5%9B%BE%E7%93%A6%E7%89%87%E5%9D%90%E6%A0%87%E7%B3%BB%E5%AE%9A%E4%B9%89%E5%8F%8A%E8%AE%A1%E7%AE%97%E5%8E%9F%E7%90%86/
    
    def WGS84_to_TILE(lng, lat, level):
    	[pointX,pointY] = LngLatTransfer().WGS84_to_WebMercator(lng,lat)
    	tileX = math.ceil(pointX*(math.pow(2,level-18))/256)
    	tileY = math.ceil(pointY*(math.pow(2,level-18))/256)
    	return [tileX,tileY]
    

    wgs84经纬度转像素坐标原理

    wgs84转像素坐标代码如下:

    def WGS84_to_Pixel(lng, lat, level):
    	[pointX,pointY] = LngLatTransfer().WGS84_to_WebMercator(lng,lat)
    	pixelX = math.floor(pointX*math.pow(2,level-18)-math.floor(pointX*math.pow(2,level-18)/256)*256)
    	pixelY = math.floor(pointY*math.pow(2,level-18)-math.floor(pointY*math.pow(2,level-18)/256)*256)
    	return [pixelX,pixelY]
    

    如果直接按照上面的函数操作是不够的,因为得到的是每个瓦片上的像素坐标,我们需要的是在整个拼合图上的像素坐标,因此,还需要利用瓦片号来对像素坐标进一步处理,得到以左上角为原点的像素坐标。函数如下:

    # arr是坐标串list,形如[[lng1,lat1],[lng2,lat2],...]
    # level是地图的缩放等级
    # sw是行政范围西南角瓦片号,[x,y]
    # ne是行政范围东北角瓦片号,[x,y]
    def lineString(arr,level,sw,ne):
    	res = []
    	for p in arr:
    		[px,py] = WGS84_to_Pixel(p[0], p[1], level)
    		[tx,ty] = WGS84_to_TILE(p[0], p[1], level)
    		# 实际x坐标=像素x坐标+256*(当前瓦片x-西南瓦片x)
    		# 实际y坐标=256*(东北瓦片y-西南瓦片y+1)-(像素y坐标+256*(当前瓦片y-西南瓦片y))
    		# y之所以这样算,是因为瓦片坐标原点是左下,但是图像坐标原点是左上,所以要用图片高度-下方的像素数=上方的像素数
    		res.append([px+256*(tx-sw[0]),256*(ne[1]-sw[1]+1)-(py+256*(ty-sw[1]))])
    	return res
    

    这里还有一个注意点,就是我们获取到的行政区划geojson,featuretype是MultiPolygon的,是四维数组。为什么是四维?其实是因为Polygon是三维的,所以只是多加了一层。
    Polygon的geojson形如:

    {
    'coordinates':[
    # 第一个polygon
    [[114,30],[114.1,30.1],...,[114,30]],
    # 第二个polygon
    [[114.5,30.5],[114.6,30.6],...,[114.5,30.5]]
    ]
    }
    

    polygon出现两个点串,只有一种可能,就是孔洞,第一个polygon要减去第二个polygon,才构成了一个polygon。如图
    在这里插入图片描述
    为了得到polygon list,我们需要对行政区划的coordinates的四维数组,去掉最外层的两层,然后再做wgs84转像素坐标的操作,公式如下:

    # multipolygon是res['features'][0]['geometry']['coordinates'],res是行政区划接口返回的json
    def RegionToPixels(multiPoly,level,sw,ne):
    	polys = []
    	for poly in multiPoly:
    		for singlePoly in poly:
    			polys.append(lineString(singlePoly,level,sw,ne))
    	return polys
    

    样式压缩原理

    我们先来看下一个百度个性化地图瓦片请求的url长什么样。

    style = 
    {x: 1584,# 瓦片x
    y: 587,# 瓦片y
    z: 13,# level
    udt: '20181205',# timespan
    scale: 1,# 图片缩放比例,例如2就是256*2
    ak: '8d6c8b8f3749aed6b1aff3aad6f40e37',# ak,可以不管
    styles: 't:all|e:l|v:off,t:road|e:all|v:off,t:background|e:all|c:#ffffffff,t:manmade|e:all|c:#000000ff'# style json
    }
    

    大部分参数应该都可以推出含义,就是styles我们看到,并不是完整的json格式,而是有很多缩写的。字段之间用 | 隔开,且每个json之间是用 , 隔开的。具体我就不解释了,直接上代码:

    	# 生成压缩style样式字符串
    	def generateStyle(self):
    		res = ''
    		for feature in self.style:
    			f_list = []
    			for key in feature.keys():
    				if(type(feature[key])==dict):
    					for inner_key in feature[key].keys():
    						f_list.append(self.processLabel(inner_key) + ':' + self.processLabel(feature[key][inner_key]))
    				else:
    					f_list.append(self.processLabel(key) + ':' + self.processLabel(feature[key]))
    			res = res + '|'.join(f_list) + ','
    			f_list.clear()
    		self.style_str = res
    		
    	# 压缩规则
    	def processLabel(self,name):
    		res = str(name)
    		if(res=='featureType'):
    			res = 't'
    		elif(res=='elementType'):
    			res = 'e'
    		elif(res=='labels'):
    			res = 'l'
    		elif(res=='geometry'):
    			res = 'g'
    		elif(res=='visibility'):
    			res = 'v'
    		elif(res=='color'):
    			res = 'c'
    		elif(res=='hue'):
    			res = 'h'
    		elif(res=='weight'):
    			res = 'w'
    		elif(res=='lightness'):
    			res = 'l'
    		elif(res=='saturation'):
    			res = 's'
    		else:
    			pass
    		return res
    

    style json书写格式

    具体参见README.md

    展望

    目前尚存一些问题,比如部分图片下载成功(http code 200)但是图片合成是全黑的,但是这种情况较少发生。另外,多线程爬取瓦片,显然会对百度的服务器造成一定的压力,因此如果行政区划较大,且level较高,其实是会有很多瓦片要爬取的(上万),这时候也可能存在一些异常情况,比如图片爬取终止等。 (已解决)

    后期可能会考虑关闭level的参数入口,直接根据行政区划待爬的瓦片数量来决定level。

    另外,考虑到用户的各种情况,后期可能也会开放根据用户提供的矩形范围直接爬取瓦片的接口。

    ——————————————分割线————————————————

    以上是现阶段的一些成果,和我的目标还有一定的距离,我希望后续可以实现以下功能:

    1. 瓦片上叠加行政区划的边界线 (已实现)
    2. 集成栅格转矢量的算法,根据目标地物直接输出shapefile文件

    要实现以上的功能,最主要的难点是:瓦片的左下角平面坐标(原点),以及行政边界在瓦片坐标系的相对坐标(像素为单位)计算,等有空了再实现~

    ——————————————2020.12.21——————————————
    今天把wgs84转web墨卡托的函数改了下,就是给转换后的xy坐标各加上一个值,来平移整个坐标系。虽然估计不是百度实际的偏移方法,但是观察了下武汉市武昌区的行政区划和北京市朝阳区的行政区划,基本和实际吻合,满足作为样例图的需求。至此,一个比较强的需求算是解决了。

    本来想用python调用百度js api里面的转换函数,但是发现会用开发者自己的key来转换坐标,很容易耗尽,所以打消了这个念头。

    目前这套方法,无需用户提供key,只需要修改配置文件config.py就可以下载到全国各省市的遥感影像和个性化配置地图。
    再来附上开源链接,欢迎star😄

    Baidu-Styled-Tile-Downloader

    展开全文
  • 如果您曾经在GIMP中拍摄过数码照片以消除红眼或前女友或前男友,或者剪出伸入镜框边缘的手指,那么您实际上是个合成器。 在业内被称为“补偿艺术家”,专门拍摄不同的运动图像并将它们放置在同一帧中,通常看起来是...

    如果您曾经在GIMP中拍摄过数码照片以消除红眼或前女友或前男友,或者剪出伸入镜框边缘的手指,那么您实际上是个合成器。 在业内被称为“补偿艺术家”,专门拍摄不同的运动图像并将它们放置在同一帧中,通常看起来是同时拍摄了不同的元素。 在大屏幕上,几乎可以看到自1933年的《金刚》(或之后的电影)以来的每部电影,但艺术已成为数字领域的一门科学,在某些领域,电影的编辑和叠加几乎没有那么多。

    市场上没有很多专用的复合应用程序,并且开源不拥有一个,而是拥有两个。 首先是Blender ,它已经充分证明了自己作为作曲家的价值,最近在《钢之泪》中 ,这部电影将实景与CG无缝结合。 该团队的最新成员是Natron ,该应用程序可以根据已建立的合成约定对自身进行建模,并利用现有的计划来创建开放的VFX,例如openeffects.orgopencolorio.orgopencv.org

    安装Natron

    要安装Natron,只需从其网站下载安装程序即可。 以普通用户身份运行它以将其安装到您的主目录中(例如,您可以将其安装到〜/ bin / natron中),或者使用kdesu或gksudo命令在系统范围内安装它(例如,您可以将其放入/ opt / natron,以便任何用户都可以访问它)。

    安装向导将提供安装多个第三方工具的功能,包括Tuttle效果; 安装一切。

    取决于您的安装方式,在安装程序关闭时运行Natron可能会或可能无法运行。 无论哪种方式,安装后,都可以从文件管理器或应用程序菜单中启动它。

    基本合成

    合成既是一门科学,也是一门艺术,但是Natron的用户机制很快就可以使用。

    要开始使用,请从slackermedia.info的首页下载Slackermedia徽标,然后将其保存在适当位置的硬盘中。 图片的完整路径为http://slackermedia.info/images/bigskull.png

    $ wget http://slackermedia.info/images/bigskull.png

    启动Natron(如果尚未运行)。

    the natron window
    • Natron窗口的左上方是查看器。
    • 左下角是节点图(大多数编译器称为“脚本面板”)。
    • Natron窗口的右半部分是“属性”面板。

    在“属性”区域的“项目设置”面板中,设置颜色空间(如果对您而言很重要)(对于此演示来说,则不是)。 将帧范围从其当前默认值1-1设置为1-24。 将帧速率设置为12左右(仅因为这是一个演示并且不需要完整的规格)。

    要导入影片或图像序列,或者在这种情况下,一个单一的形象,为龙湖,其中节点图中区域中右键单击任意选择图像 > 阅读 ,或者直接按键盘上的R键的同时鼠标光标在节点图的范围内。

    图像进入您的工作空间后,它可能不会显示在查看器中(取决于您导入的方式),因为它没有连接到查看器。 单击“读取图像”节点底部边缘上的箭头,然后将鼠标光标拖到“ Viewer1”节点上。 释放鼠标按钮后,节点之间将出现一个箭头,并且图像出现在查看器窗口中。

    Natron将您的查看器大小设置为您导入的第一张图像的大小。 在“属性”区域的“项目设置”面板中,将“输出格式”设置为合理的演示帧大小。 由于这只是一个演示,因此较小的框架尺寸可能会更好,因此请将其设置为PAL,除非您想对计算机进行压力测试以查看其可以处理的内容。

    一切都是一个节点

    在Natron中,几乎所有事物都是一个节点。 如果您对GIMP或Synfig很有经验,那么您在这两个应用程序中可能要做的任何事情都可以转化为在Natron中找到一个节点来完成相同的工作。 它并不总是直接翻译,而是一个很好的起点。

    在工作区中使用Slackermedia徽标,添加一些文本:

    • 在“节点图”窗口中单击鼠标右键。
    • 选择“ 绘图” >“ TuttleText”
    • 在“ Tuttle文本”属性面板的“文本”字段中,键入一个字符串。 将字体大小和字体设置为您可以轻松看到的字体。
    • 将“颜色”设置为白色,将“背景颜色”设置为黑色。

    如果将TuttleText节点连接到Viewer1节点,则文本将接管查看器,这就是您所看到的全部。 即使将徽标和徽标同时输入给查看者,您也会丢失徽标。

    这就是合成的来源。 要一起看到两个图层,必须将它们组合在一起:

    在“节点图”窗口中单击鼠标右键。 选择合并 > 合并 。 将图像节点连接到合并节点的A输入。 将文本节点连接到合并节点的B输入。 将合并节点连接到查看器。

    如果查看器未正确更新,请通过单击查看器窗口和“节点图”之间的“时间线”栏中最右边的按钮来打开Turbo模式。 这需要更多的RAM,但如果有,请使用它。 如果所有其他方法均失败,请断开查看器的连接,然后重新连接(通常称为“拔下并重新插入”)。

    turn on turbo mode for faster preview updates

    现在将两个图像合成在一起。 默认合并是过度合成。 合成有几种不同的类型,有时在不同的程序中它们的名称略有不同,但是原理始终是相同的。

    在Merge1属性面板中更改合并复合类型。

    在本练习中,源材料是黑白的,因此在这种情况下,所有复合模式基本上都是二进制的。 一切都被相乘或相加成绝对值。 在大多数复合材料中,情况并非如此。 如果要查看更逼真的合成示例,请尝试引入自己的照片或视频,并查看其对文本或其他图像的React。

    基本动画

    如果不是合成运动图像的事实,Natron将是GIMP的过于复杂的版本。 由于Natron中的大多数图片都会移动,因此用于组合它们的元素必须移动的情况并不罕见。

    当前,Slackermedia徽标和演示组合中的文本是静态的。 任何带有关键帧按钮的东西

    keyframe button
    旁边可以设置动画,还有几个其他节点可以为资产添加更多可动画化的属性。

    要在Natron中制作动画,请使用关键帧。 关键帧按钮位于属性面板中:

    1. 使用时间轴上的播放控件将播放头移动到第1帧,或将其拖放。
    2. 在TuttleText属性面板中,单击关键帧按钮,然后选择“设置关键帧”(所有尺寸。这将创建一个新的关键帧;在时间轴中,播放头变为蓝色。
    3. 将项目播放头移至第18帧(或稍后的某个帧),然后再次单击关键帧按钮以设置新的关键帧。
    4. 您有两个关键帧,但是两个时间点之间没有运动。 在Natron中进行补间的最简单方法是“曲线编辑器”窗口,该窗口是“节点图”窗口后面的选项卡。 如果没有“曲线编辑器”选项卡,请单击“节点图”选项卡左侧的“布局”按钮,然后在此处选择“曲线编辑器”。
    5. 切换到“曲线编辑器”窗口,然后找到代表X和Y位置的线。 与Blender中一样,使用鼠标滚轮(或触摸板上的滚动功能1)进行放大和缩小。 鼠标中键可在“曲线编辑器”中四处移动。
    6. 抓住曲线编辑器中的关键帧标记,以希望动画发生的任何方式更改TuttleText节点的值。 例如,尝试将文本从右移到左。

    natron curve

    动画制作完成后,将播放头放回起点,然后按播放。

    并非所有资产都具有以TuttleText方式构建的便捷位置标记。 您可以通过向脚本中添加更多节点来添加属性,例如位置,裁剪,大小,旋转度等。 例如,要添加一个变换节点:

    1. 单击“节点图”窗口中的Slackermedia徽标节点。
    2. 右键单击“节点图”窗口中的任何位置。
    3. 选择“ 变换” >“ 变换” 。 变换节点直接内联显示在所选节点之后。
    4. 单击“节点图”窗口中的变换节点。
    5. 在“变换”属性面板中,更改位置,偏斜,比例,旋转(以及更多)。

    与任何属性面板一样,任何带有关键帧按钮的内容都可以设置动画。

    natron basic

    色度键示例

    运动图形有一个时间和地点,但是Natron功能的一个更真实的例子是无处不在的绿屏效果。 为此,您需要示例素材。 样本素材在线上比比皆是,但是您在网上找到的大部分内容都经过了严格压缩,根据定义,它会丢弃信息。 对于干净的绿色屏幕,压缩的画面越少越好。

    如果没有可用的绿屏画面,请尝试在Internet上搜索绿屏镜头; 如果没有发布,有很多在线至少可以用来进行试验。

    1. 添加带有“读取”节点(键盘上的r或在“节点图”窗口中的任意位置单击鼠标右键)的绿屏快照。
    2. 添加背景照片或哑光照片,以及一个“读取”节点(键盘上的r或在“节点图”窗口中的任意位置单击鼠标右键)。
    3. 从“ 抠像器” >“ ChromaKeyer”中添加“绿屏效果”,在技术上更称为色度键
    4. 将绿色屏幕节点连接到色谱仪源。
    5. 将背景节点连接到色谱仪背景。
    6. 将Chromakeyer节点的输出连接到Viewer节点。

    使用Chromakeyer属性面板中的颜色选择器(使用面板中的颜色选择器而不是面板的标题栏。标题栏颜色选择器用于脚本区域中节点的视觉外观,它对实际区域没有影响节点的功能。

    use the color swatch inside the property panel, not the one above it

    拥有良好的色度键后,您将在查看器中看到它。

    a basic chroma key

    为了感受Natron的灵活性,以及​​在合成上付出一些额外的努力可以带来更好的效果,让我们为镜头添加些许风格。

    1. 将“合并”节点添加到“节点图”窗口。
    2. 将ChromaKeyer的输出连接到“合并”节点的A侧。
    3. 在背景图像之后添加“ 滤镜” >“ BlurCImg1”节点,然后从ChromaKeyer断开背景(或模糊)的连接。 通过将背景从色度键释放出来,可以增加处理键输出的灵活性。
    4. 将模糊节点连接到合并节点的B侧。
    5. 将“合并”节点连接到查看器。
    6. 在BlurCImg1属性面板中,增加模糊量,直到背景具有“柔焦”外观为止。

    现在,您有了一个场景,该场景充其量是最好的景深建议,或者最坏的情况是不加重任何杂物。

    a blur effect

    在此示例中,镜头中的芭蕾舞演员在边缘周围仍然有些粗糙。 有几种方法可以解决该问题,但在这种情况下,客户需要寻找一种人工发光来暗示舞台照明。 这是一个很好的例子,说明如何将输出自身加倍以产生独特的效果。

      1. 在不删除任何节点或连接的情况下,单击并拖动以选择“读取”和“ Chromakeyer”节点。 右键单击您的选择,然后选择编辑 > 重复节点
      2. 将重复的节点移到一边,以便您可以使用它们。
      3. 添加一个Merge > Dissolve节点
      4. 将新的Chromakeyer输出连接到Dissolve节点。
      5. 添加一个“ 过滤器” >“ Tuttle模糊”节点,并将其连接到“溶解”节点。
      6. 现在,将原始Chromakeyer与Merge节点断开连接,然后将其重新连接到新的Dissolve节点中。
      7. 将“溶解”节点连接到“合并”节点。
      8. 在TuttleBlur属性面板中,适当增加模糊量,以便在对象周围出现外发光。

    glow

    复合材料现在开始看起来像复合材料。 当然,在将它作为视频发布到世界上之前,我们需要进行颜色分级(是的,为此有一个节点),并且可能要进行一两次转换以更好地将帧定位在帧中,但这为您提供了基本的关于可能的事以及如何完成所有事的想法。

    这里重要的一课是分割技术。 该脚本不是将所有节点都挂接到中央的“合并”节点,而是将各个效果保留在自己的子例程中,然后将这些子例程最终连接到最终查看器上方的“合并”。 这并不总是组合的发展方向,但是要记住,只有很少的脚本只是三个或四个节点,而线性的脚本却很少。

    Natron仍是一个相对较年轻的项目。 关于Natron的文档很多,但是合成原理,甚至它使用的效果种类(甚至效果本身)都有很好的文档记录。

    许多在线教程甚至都有免费的可下载示例资源,您可以在他们正在讲授的应用程序中使用它们。 这些相同的资产和原理在Natron中将起作用,因此如果您不熟悉基于节点的合成,请在线浏览。 只需翻译一下,您就可以了解所有需要了解的内容。

    多媒体
    创客

    本文是Seth Kenlon的“多媒体制作者”专栏的一部分,他在其中分享了有关使用Linux及其丰富的创意工具包创建多媒体的教程和技巧。 与slackermedia.info和gnuworldorder.info合作。

    翻译自: https://opensource.com/life/15/7/getting-started-with-natron

    展开全文
  • 换脸软件DeepFaceLab(DeepFace)交互式合成器,中文翻译,界面翻译,翻译方式,资源图片位置。
  • 一个简单但很有趣的图片文件合成器,可以隐藏绝密文件 如图: 当我们把文件后缀改为.pdf(记得改完后再刷新一下),它就变成了一个pdf文件 点开一看,是周勋学长的《痛苦的修炼》 你也可以下载下方的图片,自己...
  • Helicon Focus Pro通过整合聚焦区域从几个部分聚焦的图像或堆栈中每张照片的最清晰区域将其渲染为一张完全聚焦的图像,威航软件园测试还发现helicon focus还有非常实用的文件夹监视功能,能实时监视指定的文件夹,...
  • 下载器支持P站GIF图片提取、P站图片批量下载、高清图片无损合成等功能,功能强大、界面清爽! 软件特色: 1、支持无损合成 2、支持高压缩合成 3、支持灰度/高缩放比合成 4、默认调用最大图API 5、时间间隔...
  • 乐谱合成播放器

    2016-03-13 08:39:33
    一款制作简谱并播放的软件。键盘党的简谱制作工具,可在记事本中编写简谱代码,由该软件合成图片,并可以播放。具体参考内置帮助文档。
  • 一款不错的序列帧合成器,很好用可以自行设置行数、列数,还能设置多行,自动裁剪png图片,一键设置图片合成,有需要的欢迎下载
  • 用火狐浏览浏览,把网络监控打开,然后把图片地址留存下来下载 720云全景图片下载合成
  • 桑切斯 桑切斯(Sanchez)使您沉闷的对地静止卫星图像栩栩如生。 利用全彩,高分辨率,静态昂...下载 发行版适用于Raspberry Pi,Linux,Mac OS X和Windows。 ,挑选你的毒药! 对于Raspberry Pi,请选择ARM版本。
  • 序列图合成工具

    2018-05-22 18:18:23
    非常好用的序列图合成工具,自动裁剪,意见合成,可以设置水平,垂直,或多行。
  • 在项目中经常会遇到需要将不同的二维码放到一张通用图片上,提供用户下载 简单来说,就是利用canvas将同等比例的二维码在图片上叠加,生成海报 1. 设置相应比例 一般来说海报背景都是固定的,可以直接放在public...
  • 我在前面那篇博客里面已经介绍了如何让用户与 3D 场景中的组件交互(其实这个技术应该比较成熟了,只是我自己还不熟),所以这篇呢,主要是介绍一下 THREEJS 中的后期处理通道(ShaderPass)以及特效合成器...
  • 这一个插件相信用Fl studio、live编曲的人会再熟悉不过了,是非常好的合成器合成器的强大功能比起如NEXUS这样的预设效果器,基本上不用担心音源。 而如何使用? 其实很简单,只需要先打开压缩包,安装完成,然后...
  • Helicon Focus Pro通过整合聚焦区域从几个部分聚焦的图像或堆栈中每张照片的最清晰区域将其渲染为一张完全聚焦的图像,威航软件园测试还发现helicon focus还有非常实用的文件夹监视功能,能实时监视指定的文件夹,...
  • 读秀下载器

    2013-06-19 14:06:45
    5.下载完成后自动合成pdf文件。和图片存放在同一路径。 6.文献传递,每次只能传递50页,下载时,可以自定义,其实页码。然后将多次传递过来的图片复制到同一目录下,然后利用软件的png图片转pdf的功能将所有图片转换...
  • PTGui Pro是一款业内领先且非常资深的全功能专业全景图合成软件,帮助用户可以完全控制结果,即便是诸如Pano2VR、PanoramaStudio等全景图制作软件制作失败的困难场景,PTGui汉化版也可以创建完美的全景图,PTGui Pro...
  • Web视频合成器Seriously.js入门教程 作者:云荒杯倾 Seriously.js是一个实时的,基于节点(node)的(注意:不是基于nodejs)web视频合成器。受after affects和nuke等专业软件的启发,Seriously.js能渲染高质量的可...
  • 一款真正能把WORD导入到HTML编辑中的软件,包括WORD里的图片也能一起导进去,神了吧!本人花了好久时间才合成,并经过无数次测试,正式拿出来与各位网友分享。
  • 五 : 下载瓦片合成器 六 : 选择合成路径和输出路径 七 : 查看合成后的图片 试用的话只能下载100张瓦片,我现在开通vip支持多级别瓦片同时下载,而且是在线下载非常的方便! 这是网站附带站长的联系方式 QQ :...
  • 巴士报站图片生成网页版,近日乘坐某巴士,有幸担任车长一职,无奈需要在群里报站,但是不给发报站图(其他公司是提供的),于是一时兴起写了这个小工具,支持自定义运营商logo,班次、路线名称、到站、下一站。...
  • 很久没来写文章了,自己忙又懒。最近实现了一个需求,有点意思,就想起来记录一下。 业务需求:生成一个二维码,旁边还要加点解释说明什么的,(类似)最终...3.批量下载:选择使用java自带的ZipOutputStream压缩...
  • 我目前参与小程序的产品研发,为了方便产品的转发和推广,会对课提供生成海报转发或者分享的功能,前期海报合成这个功能是由项目组的老同事负责开发,后来小程序海报这块功能需要单独做一个功能用于专门根据不同的...
  • 该软件可以较快的合成全景图图片,可以批量生成

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,138
精华内容 6,055
关键字:

下载图片合成器