阿里图片合成接口拼接
上篇博客我写了把两张图片合成为一张图片。
那样的合成方式是可以的,也是可以合成成功的。但是这样的合成方式有些许不足
1、合成的图片除非服务器端给配置的图片考虑到了不同设备的分辨率的情况,这对不同的设备给了不同的图,如果不是这样,生成的图片放在不同的设备上有不同程度的拉伸问题。
2、如果两张图片都是服务器端给的url,那么我们需要使用图片下载工具,对两张图片分别下载。代码量非常多。
研究了好久,发现阿里云给我们提供了非常便捷的图片方式。大致原理是将两个url合称为一个url,这个url就是我们最终所需要的那个图片的url,我们只需要下载一个图片来用就可以了。
效果:
其中一张图片
需要将下面那个底图和一张二维码图片合成为一张图片。
阿里云的文档参照 :https://helpcdn.aliyun.com/document_detail/44957.html?spm=a2c4g.11186623.4.4.cd4b35a8uhEMdn#h2-url-2 阿里云将两张图片合成的逻辑在这里展示的是添加水印的方法。
在这里我将二维码当做水印图片。
但是这个文档并没有oc的代码,不要紧,我来解释一下,这个文档的本质就是接口拼接,这个规则都在这个文档中。
我再oc 的角度解释一下。以文档中的那个连接说明一下:
http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_400/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA,t_90,g_se,x_10,y_10
来看这里我解释一下。这里可能是他这个底图的分辨率是400的宽,在这里写明了,当然这里可以不做任何显示将w_400去掉,但是请注意接口拼接w_400只是value,也需要将resize去掉,你可以试一下去掉之后是这样的http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA,x_100,y_100。
你看到中间有一堆代码不认识,不要紧,它是将那个“水印”图片进行了Base64的加密。在这里我提供一个base64加密的链接https://blog.csdn.net/mr_raptor/article/details/50806657 经我验证,这个链接中提供的内容是可用的。这个链接中有一个第三方库。注意
这个第三方库在git上可以正常下载,我们只需要使用这个库里面的关于base64加密的那三个文件夹即可。在用到的地方导入头文件。
请注意,关于这个功能我们暂时只用到了编码的方法,解码的方法没有用到。
这个水印的链接,我们只看到了panda.png 注意这不是一个本地的图片,这也是一个图片的url,但是我们在编码时需要将url前面那一堆的去掉,注意应该是保留**.com/**的所有文本,实际上他的全部链接为http://image-demo.img-cn-hangzhou.aliyuncs.com/panda.png。
这个链接最后 x_100 y_100 表示水印位置在底图上的位置。关于这些参数的用法,请您参照文档中的
我这个截图只是个栗子,这里面提供了很多参数,诸位看明白了再用。
这是我的代码,仅提供参考
NSString * qrStr = [data.qrCode URLDecodedString];qrStr = [[qrStr componentsSeparatedByString:@".com/"] lastObject];qrStr = [NSString stringWithFormat:@"%@?x-oss-process=image/resize,w_280",qrStr];//base64编码qrStr = [NSString safeUrlBase64Encode:qrStr];NSString * bottomImageUrl = dataSuper.shareImg.imgLink;NSString * shareImageUrl = [NSString stringWithFormat:@"%@?x-oss-process=image/watermark,image_%@,t_90,g_south,y_176",bottomImageUrl,qrStr];
这里我们队url进行了url编码,如果您的服务器没有做url编码操作,可以不看第一句代码。
如果您没有展示出效果来,这是阿里云提供的错误文档可以参照
https://error-center.aliyun.com/status/product/Oss
阿里云的这个功能很神奇。
欢迎大家使用。
我是磊怀 2849765859 这是我的qq,欢迎您联系我。
阿里图片合成接口拼接相关推荐
- 如何快速将多图片合并拼接成一张大图并保留原图质量 - 极速图片合成拼接器软件简介
在工作中我们有时需要把多张图片打印在一张纸上,那就必须手动排列和调整每张图片的大小,这可是一项费时费力的任务. 借助极速图片合成拼接器这款软件,终于可以快速自动解决这种任务啦! 它是一款可以自动一次性 ...
- Java 实现图片合成
2019独角兽企业重金招聘Python工程师标准>>> 图片合成 利用Java的绘图方法,实现图片合成 在开始之前,先定一个小目标,我们希望通过图片合成的方式,创建一个类似下面样式的 ...
- java中怎么合成图片_Java 实现图片合成
图片合成 利用Java的绘图方法,实现图片合成 在开始之前,先定一个小目标,我们希望通过图片合成的方式,创建一个类似下面样式的图片 I. 设计思路 首先解析一下我们的目标实现图片合成,那么这些合成的基 ...
- 图片合成gif_谈谈有哪些好用的制作GIF的方式
今天咱们谈谈计算机上几种制作 GIF 的方式,而且他们都是免费的,但可能需要你会一点计算机操作技能.本文会简单的介绍一些常用的GIF软件,比较一下功能和上手程度.常见的GIF录制方式大概有这么几种方式 ...
- php九宫格图片合成,多宫格图片合成
多宫格图片合成工具可以实现多种不同的图片合成以及图片特效图片加文字diy图片等组合功能. 它能够将多张图片按多宫格样式拼接合成为一张宫格图片,可自由设置拼接而成的图片大小以及每张之间的上下距离以及左右 ...
- 怎么把四个图片合成一个图片?
怎么把四个图片合成一个图片?关于图片的合成,我们一般都会用到图片处理软件来进行.但是对于一些职场新人来说,他根本不会用一些专业的图片处理软件,那么这个问题对他来说就是非常棘手的.其实遇到这样的问题,新 ...
- 淘宝客商品推广图片合成(包含二维码、图片、价格)
之前在淘宝联盟里发现通过app分享出来的图片形式挺好看的.于是在网上找一下相关资料(并没有找到)...然后自已写了一个图片合成..看图(下图就是合成出来的效果图.和联盟分享出来的差异不大..) 已经将 ...
- android+照片合成,图片合成修图神器手机版
图片合成修图神器手机版由西西给大家带来,这款软件也是一个非常好用的修图软件,可以帮助大家制作各种的图片,而且模板滤镜也非常的多,喜欢的朋友赶紧来下载图片合成修图神器手机版吧! 图片合成修图神器介绍 [ ...
- IOS 绘图 bitmap 滤镜 图片合成
CGSize size = CGSizeMake(800, 800);UIGraphicsBeginImageContextWithOptions(size, NO, 1);//1.获取bitmap上 ...
- 如何将阿里云天气接口中返回的天气图标转换成对应的url
上一篇文章中我们谈到了阿里云天气接口的使用,但是,在这个接口返回的数据中,有一个图标问题是需要我们注意的. 如图所示: 阿里云接口返回的天气图标是一个状态值,拿到之后是没法直接使用的,所以,我们需要将 ...
最新文章
- 形式参数内存在哪java_深入浅出Java中JVM内存管理
- 为什么叫python编程-Python这么火,为什么说它不是未来的编程语言?
- python画图哆啦a梦-【Python】绘制哆啦A梦
- 获取inout框中未改变值的数据_数据分析10——数据分析的基本过程(02)
- attribute关键字
- GAN 的推导、证明与实现。
- RTX5 | 消息队列06 - (实战技巧)FDCAN接收中断ISR同步线程
- 使用各类BeanUtils的时候,切记注意这个坑!
- 15种能力:决定了你的未来能走多远
- [BZOJ4913][SDOI2017]遗忘的集合
- 网站性能测试工具--MS Web Application Stress Tool
- iOS平台基于ffmpeg的视频直播技术揭秘
- mysql8连接 2002_ERROR 2002 mysql连接失败 解决方法
- 模板题——前缀和与差分
- Hosts 文件切换工具
- PHP开发入门 | 简单的PHP新闻管理系统案例
- Spark 计算人员三度关系
- 计算机二级C语言选择题——01
- android椭圆形形框_什么是计算机硬件上的椭圆形Kong?
- c++ 向量化_一种新的FIR滤波器系数量化方法