Py学习  »  Python

让你抵制新疆棉花,看我用Python怎么抵制你!

Python之禅 • 3 年前 • 539 次点击  
作者 | 麦叔
来源 | 麦叔编程


昨天
这篇文章你可能错过了,文末留言赠书哈

↓↓↓↓

豆瓣评分8.9,这本Python经典入门书成功破圈(文末赠书)


这两天的热门话题莫过于HMBCI了,我本来对这种跳梁小丑的什么组织,什么品牌的相关新闻没多大兴趣,但没想到还是被卷进来了。

我叫sabiba,你adidas出事关我什么事?

吃过晚饭,忙完工作,老婆忽然非要让我看一个搞笑的新闻,大致意思是这样的:

很多阿迪达斯赞助的节目都崩溃了,后期根本来不及处理那么多帧的画面,目前唯一的解决办法就是统一镜面反转,“我叫sabiba,你adidas出事关我什么事?

类似这样的画面:

截屏2021-03-26 07.10.05

改成这样的:

我叫sabiba,你adidas出事关我什么事?

然后她又问我:这种镜面翻转是怎么做到的?

我没空理她,因为我在看寻秦记。听说寻秦记电影快要上映了,复习一下电视剧。就随口应付了一句:

不知道!后期制作人员自然有办法了。

说了以后又觉得不妥。为了明天早上还有早饭吃,还是认真回答一下吧。

这个操作,用python作实在太简单了。不管是图片,还是视频,都是几行代码搞定。

希望各大节目制作组最少聘用一个Python开发。因为在你们开会讨论要怎么办的时候,他已经把代码写好了,工作都做完了!

用Python反转图片

本文所有素材与源码都在文章末尾

  1. 制作素材:Adidas图片素材一张

    adidas
  2. 工具准备

  • Python安装好,本案例用3.6以上都可以
  • 确保自己安装好了PIL库。PIL是python处理图片的首选库。

    python -m pip install PIL
  • Python代码:

    from PIL import Image, ImageOps
    im = Image.open('addidas.png')
    # 做镜面转换
    im_mirror = ImageOps.mirror(im)
    # 保存镜像图片
    im_mirror.save('addidas_mirrow.png')
  •      注意:代码和图片要在同一个文件夹下,或者自己加上路径。

    1. 运行代码,一张热气腾腾的sabiba就生成了:

      adidas_mirrow
    2. 如果转换一个整个文件夹下所有的图片:

      import os
      from PIL import Image, ImageOps

      # 转换一个文件夹
      def flip_folder():
          outpath = "C:\images\input"
          path = "C:\images\output"

          # 循环文件夹
          for image_path in os.listdir(path):
              # 拼接完整路径
              full_path = os.path.join(path, image_path)
              im = Image.open(os.path.join(path, full_path))

              im_mirror = ImageOps.mirror(im)
              # 拼接输出路径
              full_output_path = os.path.join(outpath, 'rotated_'+image_path)
              im_mirror.save(full_output_path)

      if __name__ == '__main__':
          flip_folder()

      运行前请确保文件夹已经存在。

    用Python反转整段视频

    本文所有素材与源码都在文章末尾

    1. 制作素材:准备一段要反转的视频

    2. 工具准备

    • Python安装好,本案例用3.6以上都可以
  • 确保自己安装好了moviepy库。moviepy是python处理视频的主要库之一。其他还有就是opencv-python了,但本文不需要。

    python -m pip install moviepy
  • 上代码:

    import moviepy

    from moviepy.editor import VideoFileClip, vfx
    clip = VideoFileClip('addi_video.mp4')
    reversed_clip = clip.fx(vfx.mirror_x)
    reversed_clip.write_videofile('addi_video_flip.mp4')
  • 运行代码,一碗热气腾腾的镜面反转视频就做好了。

  • 源码素材:https://gitee.com/maishucode/python/tree/master/weixin/20210326-imagevideoflip

  • 点赞是美德

    你动动手,就是对我最大的鼓励。如果对你有帮助,请给我点赞,点在看

    Python社区是高质量的Python/Django开发社区
    本文地址:http://www.python88.com/topic/110567
     
    539 次点击