python实现按长宽比缩放图片

 更新时间:2018年06月07日 11:19:10   作者:风匀坊  
这篇文章主要为大家详细介绍了python实现按长宽比缩放图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

使用python按图片固定长宽比缩放图片到指定图片大小,空白部分填充为黑色。

代码

# -*- coding: utf-8 -*-

from PIL import Image

class image_aspect():

 def __init__(self, image_file, aspect_width, aspect_height):
  self.img = Image.open(image_file)
  self.aspect_width = aspect_width
  self.aspect_height = aspect_height
  self.result_image = None

 def change_aspect_rate(self):
  img_width = self.img.size[0]
  img_height = self.img.size[1]

  if (img_width / img_height) > (self.aspect_width / self.aspect_height):
   rate = self.aspect_width / img_width
  else:
   rate = self.aspect_height / img_height

  rate = round(rate, 1)
  print(rate)
  self.img = self.img.resize((int(img_width * rate), int(img_height * rate)))
  return self

 def past_background(self):
  self.result_image = Image.new("RGB", [self.aspect_width, self.aspect_height], (0, 0, 0, 255))
  self.result_image.paste(self.img, (int((self.aspect_width - self.img.size[0]) / 2), int((self.aspect_height - self.img.size[1]) / 2)))
  return self

 def save_result(self, file_name):
  self.result_image.save(file_name)


if __name__ == "__main__":
 image_aspect("./source/test.jpg", 1920, 1080).change_aspect_rate().past_background().save_result("./target/test.jpg")

感言

有兴趣的朋友可以将图片路径,长宽值,背景颜色等参数化
封装成api做为个公共服务

本文源码下载

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python开发企业微信机器人每天定时发消息实例

    Python开发企业微信机器人每天定时发消息实例

    这篇文章主要介绍了Python开发企业微信机器人每天定时发消息实例,需要的朋友可以参考下
    2020-03-03
  • Python基础之语法错误和异常详解

    Python基础之语法错误和异常详解

    Python有两种错误很容易辨认:语法错误和异常.本文就给大家详细介绍一下Python错误和异常,对正在学习python的小伙伴们很有帮助哦,需要的朋友可以参考下
    2021-05-05
  • Python爬虫实战项目掌握酷狗音乐的加密过程

    Python爬虫实战项目掌握酷狗音乐的加密过程

    在常见的几个音乐网站里,酷狗可以说是最好爬取的啦,什么弯都没有,所以最适合小白入门爬虫,本篇针对爬虫零基础的小白,所以每一步骤我都截图并详细解释了,其实我自己看着都啰嗦,归根到底就是两个步骤的请求,还请大佬绕路勿喷
    2021-09-09
  • Python中sorted()函数的强大排序技术实例探索

    Python中sorted()函数的强大排序技术实例探索

    排序在编程中是一个基本且重要的操作,而Python的sorted()函数则为我们提供了强大的排序能力,在本篇文章中,我们将深入研究不同排序算法、sorted() 函数的灵活性,以及各种排序场景下的最佳实践
    2024-01-01
  • python 使用shutil复制图片的例子

    python 使用shutil复制图片的例子

    今天小编就为大家分享一篇python 使用shutil复制图片的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python实现进度条和时间预估的示例代码

    Python实现进度条和时间预估的示例代码

    这篇文章主要介绍了Python实现进度条和时间预估的代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Python常用小技巧总结

    Python常用小技巧总结

    这篇文章主要介绍了Python常用小技巧,实例总结了Python关于字典、字符串、随机数等操作技巧,非常简单实用,需要的朋友可以参考下
    2015-06-06
  • python学习入门细节知识点

    python学习入门细节知识点

    我们整理了关于python入门学习的一些细节知识点,对于学习python的初学者很有用,一起学习下。
    2018-03-03
  • 一篇文章教会你PYcharm的用法

    一篇文章教会你PYcharm的用法

    这篇文章主要介绍了Pycharm新手使用教程(图文详解),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • Python3.5内置模块之time与datetime模块用法实例分析

    Python3.5内置模块之time与datetime模块用法实例分析

    这篇文章主要介绍了Python3.5内置模块之time与datetime模块用法,结合实例形式分析了Python3.5 time与datetime模块日期时间相关操作技巧,需要的朋友可以参考下
    2019-04-04

最新评论