图片合成_图片合成视频 - CSDN
精华内容
参与话题
  • 图片合成

    2019-04-18 15:21:28
    # 将两张图片合成一张,但是这个代码的毛病就是两个图像的尺寸要一样,并且只能合成png的实例图 import cv2 import numpy as np import matplotlib.pyplot as plt # 读取图片 src1 = cv2.imread('C:/Users/...
    # 将两张图片合成一张,但是这个代码的毛病就是两个图像的尺寸要一样,并且只能合成png的实例图
    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    
    # 读取图片
    src1 = cv2.imread('C:/Users/Administrator/Desktop/123.png')
    src2 = cv2.imread('C:/Users/Administrator/Desktop/4.png')
    
    # 图像融合
    result = cv2.addWeighted(src1, 0.8, src2, 0.2, 10)
    
    # 显示图像
    #cv2.imshow("src1", src1)
    #cv2.imshow("src2", src2)
    cv2.imshow("result", result)
    
    # 等待显示
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    
    展开全文
  • 利用Java程序把多张图片合成一张图片

    千次下载 热门讨论 2020-07-24 23:33:51
    利用Java程序把多张图片合成一张图片,利用Java程序把多张图片合成一张图片。
  • 这是一个基于MATLAB多聚焦图像融合将两张到六张不同焦点的图片合成成一张的项目资源,谢谢支持。
  • 图片合成图集 pList

    2019-08-02 14:05:44
    https://blog.csdn.net/u013654125/article/details/80676715 转载于:https://www.cnblogs.com/Ken-Cai/p/10992140.html

    https://blog.csdn.net/u013654125/article/details/80676715

    转载于:https://www.cnblogs.com/Ken-Cai/p/10992140.html

    展开全文
  • 不喜欢看废话的小伙伴,可以直接看图片下面的文字和注意事项 实现是没问题的。 应用场景: 项目中,每个用户都会生成自己专属的小程序码,当用户扫描这个小程序码的时候,默认这个用户就会成为你的好友,,嗯,举...

    不喜欢看废话的小伙伴,可以直接看图片下面的文字和注意事项 实现是没问题的。

    应用场景:

    项目中,每个用户都会生成自己专属的小程序码,当用户扫描这个小程序码的时候,默认这个用户就会成为你的好友,,嗯,举个身边的例子,比如现在最火的 [邀好友领红包],通过扫描二维码确定绑定关系。(不要纠结为啥放这张图片,因为刚好昨天我妹妹发我,让我给她扫一扫,?栗子放在这里 感觉会更加清楚一点,有点广告嫌疑 哈哈哈哈 可以忽略 )。

    在小程序中,我们可以生成带参的小程序码,但是呢,这个小程序码是一张小程序码图片,如果想要和产品放在一张图上,前端不做,后端做,反正总要有人做,然后,,决定让前端来做。ok,动起来,开始干。
    在这里插入图片描述

    结合文档和度娘,发现可以用canvas来实现,发现用两个函数就可以搞定, CanvasContext.drawImage画出你想画的图片
    wx.canvasToTempFilePath把画布的内容输出为图片

    实际效果:

    两张独立的图片,根据需要绘制在指定位置,合成一张图片,并保存到相册。

    效果图

    注意事项:

    CanvasContext.drawImage

    drawImage(imageResource, dx, dy)
    drawImage(imageResource, dx, dy, dWidth, dHeight)
    drawImage(imageResource, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) 从1.9.0 起支持

    imageResource,绘制的图片的路径,必须是本地图片,如果是网络图片,必须用wx.downloadFile获取本地图片的缓存后再绘制。
    dx、dy图片的位置,画布左上角为原点(0,0),注意是画布的坐标原点而不是以手机屏幕为准。
    dWidth, dHeight绘制图片的宽高,即你想把这张图片画多大,如果想要绘制原图,则通过 wx.getImageInfo获取图片的尺寸信息,直接进行绘制就可以了。

    特别注意,CanvasContext.drawImage中的dx, dy, dWidth, dHeight都是以像素px为单位的,所以不要用 rpx !!(我踩过的坑)

    wx.canvasToTempFilePath
    对这个函数,我的理解就是 手机截屏,截的是画布中的内容,画布多大它就多大,嗯,说到这,你应该就知道怎么控制底图大小,然后还很完美没有多余的白边。

    代码:

    可以直接用的代码,不过还是建议自己写下,也许写的过程还会发现其他有趣的问题呢。

      // 保存图片到相册
      savePhoto: function(index) {
        let that = this
        let imgs = that.data.imgs
    
        if (imgs[index].isDownLoad) {
          // 如果已经下载过 提示用户
          wx.showToast({
            title: '你已经下载过该图片',
            icon: 'none'
          })
          return
        } else {
          // 提示用户正在合成,否则用户可能有不当操作或者以为手机卡死
          wx.showLoading({
            title: '合成中......',
            mask: true
          })
    
          // 创建画布对象
          const ctx = wx.createCanvasContext("myCanvas", that)
          // 获取图片信息,要按照原图来绘制,否则图片会变形 
          wx.getImageInfo({
            src: that.data.imgs[index].img,
            success: function(res) {
              // 根据 图片的大小 绘制底图 的大小
              console.log(" 绘制底图 的图片信息》》》", res)
              let imgW = res.width
              let imgH = res.height
              let imgPath = res.path
    
              that.setData({
                canvasHeight: imgH,
                canvasWidth: imgW
              })
              // 绘制底图 用原图的宽高比绘制
              ctx.drawImage(imgPath, 0, 0, imgW, imgH)
    
              wx.getImageInfo({
                src: that.data.codeImg, // 二维码图片的路径
                success: function(res) {
                  console.log(" 绘制二维码》》》", res)
                  // 绘制二维码
                  ctx.drawImage(res.path, 50, imgH - 380, 300, 300)
                  ctx.draw()
    
                  wx.showLoading({
                    title: '正在保存',
                    mask: true
    
                  })
    
                  setTimeout(() => {
                    wx.canvasToTempFilePath({
                      canvasId: 'myCanvas',
                      success: function(res) {
                        console.log("合成的带有小程序码的图片success》》》", res)
                        let tempFilePath = res.tempFilePath
                        // 保存到相册
                        wx.saveImageToPhotosAlbum({
                          filePath: tempFilePath,
                          success(res) {
    
                            // 修改下载状态
                            imgs[index].isDownLoad = true
    
                            wx.hideLoading()
                            wx.showModal({
                              title: '温馨提示',
                              content: '图片保存成功,可在相册中查看',
                              showCancel: false,
                              success(res) {
                                wx.clear
                                if (res.confirm) {
                                  that.setData({
                                    isShow: true
                                  })
                                }
                              }
                            })
    
                            that.setData({
                              imgs: imgs,
                            })
                          },
    
                          fail(res) {
                            wx.hideLoading()
                            wx.showModal({
                              title: '温馨提示',
                              content: '图片保存失败,请重试',
                              showCancel: false
                            })
                          }
                        })
    
                        console.log("合成的带有小程序码的图片的信息》》》", res)
                      },
                      fail: function(res) {
                        console.log("生成的图拍呢 失败 fail fail fail ", res)
                        wx.hideLoading()
                        wx.showModal({
                          title: '温馨提示',
                          content: '小程序码图片合成失败,请重试',
                          showCancel: false
                        })
                      }
                    }, that)
                  },1500)
                },
                fail(res) {
                  wx.hideLoading()
                  wx.showModal({
                    title: '温馨提示',
                    content: '二维码获取失败,请重试',
                    showCancel: false
                  })
                }
              })
    
            },
            fail(res) {
              wx.hideLoading()
              wx.showModal({
                title: '温馨提示',
                content: '图片信息获取失败,请重试',
                showCancel: false
              })
            }
          })
        }
    
      },
    

    wxml:

     <view class="placeHoder"></view>
     <canvas style="width:{{canvasWidth}}px; height:{{canvasHeight}}px;" canvas-id="myCanvas" />
    

    json
    禁止页面滑动

     "disableScroll":true
    

    真良心,xml也给贴出来啦。isShow 是因为我想直接保存,不给用户看到绘制的过程,如果你那里可以预览的话,简直完美,不需要隐藏绘制过程。

    一点曲折

    需求:

    用户看到的是一张不包含二维码的缩略图,当用户点击之后 会执行下载操作,把包含二维码的原图保存到手机相册中,用户不能看到绘制过程,

    解决思路:

    原先的处理是 用hidden来控制canvas的显示隐藏,由于原图比较大 所以会出现页面滑动出现大量空白页面的问题,并且 有可能绘制不出图片,有时候会出现小程序意外退出的问题。

    后来 我这里直接 用一个view和缩略图占据全屏,然后 在看不到的地方绘制原图和二维码,绘制完成后进行保存。

    问题:

    IOS: canvasToTempFilePath:fail. errMsg:"canvasToTempFilePath:fail no image"
    Android:canvasToTempFilePath:fail. errMsg:"canvasToTempFilePath:fail create bitmap failed"

    这个问题 是由于对canvas 用了hidden 属性,导致绘图失败,本来是打算用用hidden来隐藏绘制过程的,前期没有问题,后来出现绘制失败 无法保存合成的图片,甚至小程序意外退出的情况,因此,canvas绘制在屏幕外,禁止屏幕滑动来隐藏绘制过程。

    另外一个需要注意的问题是 当点击图片的时候会进行保存,如果用户连续点击多次则会出现卡死退出的情况,因为绘制的是原图,比较大,所以当正在绘制的时候要控制不能多次下载绘制。可以用一个变量来控制。

    IOS 保存多张图片的时候会出现内存不足,小程序退出的情况,因为在绘制过程中会先缓存图片然后进行绘制,当图片过多的时候会出现这种情况,需要在微信中 设置==> 存储 ==> 缓存 清除缓存 再次进行存储。

    嗯,惯例,写给自己一句话,好好爱自己呀。

    展开全文
  • 图片合成PDF

    2020-07-17 17:56:08
    这个工具是我方便我同事的工作而开发的后来发现这个工具特别适合用来合成通过扫描仪扫描的图片文件,将多个图片文件合成一个PDF文件,能更方便阅读和文件的管理。 特点: 1、 合成速度快; 2、 界面美观; 3、 操作...
  • 类似于照片墙的效果,几张图片叠在一起,合成一张图片
  • 图片合成工具

    2018-11-14 16:37:14
    maven中添加  &lt;dependency&gt; &lt;groupId&gt;cn.hutool&lt;/groupId&gt; &lt;artifactId&gt;hutool-all&lt;/artifactId&... 调用方法,添加水印等操作

    maven中添加 

    <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.1.20</version> </dependency>

     调用方法,添加水印等操作

    ImageUtil.pressImage(Fie(ge(FileUtil.file("d:("d:/picTest/st/1.jpg"), "), ), FileUtil.file("d:("d:/picTest/st/dest.jpg"), "), ), ImageUtil.read(Fil(ad(FileUtil.file("d:("d:/picTest/st/1432613.jpg")),")), 0, 0, 1f);

    maven导入后方法还有许多,正在研究中······

    展开全文
  • 背景:开发要实现一个功能,类似做一个淘宝的合成图片,把一个图片放到另一个图片的部分区域,两个图片合成一张图片,在合成的图片上面,插入一段描述性的语句.实现步骤如下: 1两张图片合成一张,因为图片2比图片1还要大,...
  • 今天就教大家简单几步,把视频和图片合成照片视频。先看看用数码大师合成视频和图片的效果截图: 第一步:把图片一次性导入,为照片配上文字 点击“添加相片”就能快速导入照片,大家可以同时加入多张照片。想...
  • 视频照片合成软件哪个好?怎么把照片合成视频?如何快速把手机照片做成视频? 这是我用数码大师把手机照片合成视频的效果截图: 第一步:快速导入多张照片,为照片配上文字 点击“添加相片”就能快速导入照片,...
  • 如何把多张图片合成视频

    千次阅读 2018-08-03 09:56:50
    我们知道视频其实是由多张图片构成的,人眼识别率是每秒15帧,每秒15张图片视频就看起来是连续的。 import cv2 img = cv2.imread('image1.jpg') imgInfo = img.shape size = (imgInfo[1],imgInfo[0]) print(size) ...
  • 电脑图片合成视频怎么做?图片视频制作用什么软件好?现在大家的照片或图片很多,其实在电脑上把图片做成视频是非常方便的,还能整理好照片,节省空间,图片/照片视频看起来也更加美观。今天直接用数码大师教大家用...
  • ffmpeg 将图片序列合成为一段视频

    千次阅读 2016-04-27 21:38:23
    文件目录如上使用如下命令合并成一段视频ffmpeg -r 0.5 -i images/img%03d.jpg video.avi
  • 两张(多张)图片合成一张图片

    千次阅读 2016-02-23 21:12:48
    下面向通过颜色创建了一张空白图片,然后将目标图片居中在上一个图片中,这里可以通过同样的方法绘制多张图片到一张图片上去- (UIImage *) drawRectForImage:(UIImage *) image { UIImage* rectImage = [UIImage ...
  • java将多张图片合成视频

    千次阅读 2018-10-25 21:49:34
    java将多张图片合成视频 需求 近几天,无聊就看看抖音,视频信息传播信息,相亲去抖音,网红去抖音,秀恩爱去抖音。。。走在大街上,几个小妹妹拿着手机自拍干是玩抖音还是直播呢?每个人都想当导演的梦,但又没DV...
  • 利用开源软件 Hugin 实现照片的景深合成本文主要参考了下面的文章:http://macrocam.blogspot.jp/2013/09/using-hugin-for-focus-stacking.html根据我自己的理解做了少量的增删。首先感谢原作者。Hugin 是一个很出名...
  • 怎么将多张图片合成一个PDF文件

    千次阅读 2016-03-23 11:15:37
    图片太多在查看的时候不方便,而且在传输文件的时候也很麻烦,但是我们可以将图片合成一个PDF文件,这样会方便我们在各种设备上进行查看,而且对图片的质量也不会产生影响。  在操作之前先对图片进行整理和...
  • ffmpeg将图片合成视频

    万次阅读 热门讨论 2014-05-26 17:26:25
    本来想做个android录制屏幕的功能,但是目前只能是截图 然后把图片合成视频,这里就需要用到
  • 做物联网设备软件开发时,设备端一般都有读取身份证的模块,比如银行自助终端,图书馆自助终端,而从硬件端读取身份证出来的是原始数据,需要合成身份证正反面并在终端显示,最终上传base64编码的图片数据到服务端。...
1 2 3 4 5 ... 20
收藏数 64,062
精华内容 25,624
关键字:

图片合成