目录

python在内存中处理图片

1. 获取gif图片第一帧,添加文字,获取图片的base64和md5

2. pyplot绘图后,获取图片的base64和md5

附1. python2.7 pip安装脚本


python在内存中处理图片

python 2.7

1. 获取gif图片第一帧,添加文字,获取图片的base64和md5

import requests
import iofrom PIL import ImageFont, ImageDraw, Image, ImageSequence
import numpy as np
import cv2import base64
import hashlibreq = requests.Session()
response = req.get(picUrl)
if response.status_code == 200:image_data = response.contentimage = io.BytesIO(image_data)gif = Image.open(image)# gif图片, 这里只处理一帧for i, frame in enumerate(ImageSequence.Iterator(gif), 1):# bytesioout = io.BytesIO()frame.save(out, format="PNG")out.seek(0)file_bytes = np.asarray(bytearray(out.read()), dtype=np.uint8)bk_img = cv2.imdecode(file_bytes, cv2.IMREAD_COLOR)                 # 设置需要显示的字体font = ImageFont.truetype("./STSONG.TTF", 13)img_pil = Image.fromarray(bk_img)draw = ImageDraw.Draw(img_pil)# 图片的指定位置处,添加2组文字addText_1 = "hello"addText_2 = "world"draw.text((90, 30),  addText_1.decode('utf-8'), font = font, fill = (0, 0, 0))draw.text((90, 45),  addText_2.decode('utf-8'), font = font, fill = (0, 0, 0))del drawbk_img = np.array(img_pil)image_data = cv2.imencode('.png',bk_img)[1].tostring()# base64, md5image_base64 = base64.b64encode(image_data)image_md5 = hashlib.md5(image_data).hexdigest()break

2. pyplot绘图后,获取图片的base64和md5

import matplotlib
matplotlib.use('Agg')
from matplotlib import pyplot as plt
from io import BytesIO
from base64 import b64encode
from hashlib import md5plt.figure()
plt.plot(x_date, y_data, color='red', label='test_data')
# plt.show()figData = BytesIO()
plt.savefig(figData, format='png')
figData.seek(0)     # rewind to begining of the figData
image_data = figData.read()
# image_data = figData.getvalue()
image_base64 = b64encode(image_data)
image_md5 = md5(image_data).hexdigest()

附1. python2.7 pip安装

wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python get-pip.py

python在内存中处理图片相关推荐

  1. python在内存中生成Zip文件!

    python在内存中生成Zip文件! - 天真的好蓝啊 - 博客园 python在内存中生成Zip文件! import zipfile import StringIO class MemoryZipF ...

  2. python删除对象引用_使用Python删除内存中的对象

    我正在尝试使用这种方法删除python中的对象.我阅读了Python的文档,声明垃圾收集器将自动删除未引用的对象.def check(): class newOb(): def __init__(se ...

  3. python 在内存中读写:StringIO / BytesIO

    操作字符串,使用StringIO #!/usr/bin/python # -*- coding: utf-8 -*-from io import StringIOf = StringIO() f.wr ...

  4. python opencv 内存泄露_解决python中显示图片的plt.imshow plt.show()内存泄漏问题

    当要处理批量图片,且每张图片都要进行显示时,用plt.imshow() plt.show()会出现内存泄漏, 管理器中看到其中一个python进程的内存不断上涨,目前有找到解决方法 from matp ...

  5. python的内存机制_python中的内存机制

    首先要明白对象和引用的概念 (例子:a=1, a为引用,1为对象,对象1的引用计数器为1,b=1此时内存中只有一个对象1,a,b都为引用,对象的引用计数器此时为2,因为有两个引用) a=1,b=1id ...

  6. python 读取内存_python内存读写

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 也就是说,所有的解释器可以同时读写数据,在一个解释器中对数据做出的修改会自动反映 ...

  7. OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式...

    OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式 以最简单的4 x 5三通道图像为例,其在内存中Mat类型的数据组织形式如下: 每一行的每一列 ...

  8. python里面的类和对象_Python中类和对象在内存中是如何保存?

    类以及类中的方法在内存中只有一份,而根据类创建的每一个对象都在内存中需要存一份,大致如下图: 如上图所示,根据类创建对象时,对象中除了封装 name 和 age 的值之外,还会保存一个类对象指针,该值 ...

  9. python 内存中的文件操作 StringIO cStringIO 简介

    StringIO StringIO的行为与file对象非常像,但它不是磁盘上文件,而是一个内存里的"文件",我们可以将操作磁盘文件那样来操作StringIO.一个简单的例子,让你对 ...

最新文章

  1. Temporary failure in name resolution
  2. linux中断下半部
  3. 【错误记录】SeeMusic 内存错误 ( 内存占用率 100 % | 清除系统设置信息 )
  4. javascript之DOM总结
  5. 【29.70%】【codeforces 723D】Lakes in Berland
  6. Windows下MariaDB数据库安装图文教程
  7. CCF 201409-1 相邻数对
  8. MySQL系列: undo和redo工作原理
  9. 将对象映射到多个XML模式–天气示例
  10. 软件测试工程师-缺陷报告
  11. 天价部队到老家赶来java作文_天价与廉价作文800字
  12. GCD Timer事件的精度
  13. fzu 2204 7 dp
  14. A Belief Propagation Algorithm for Multipath-Based SLAM IEEE TWC2019阅读
  15. 不可不知,专业名词解释
  16. windows桌面小工具(Tkinter)
  17. 工欲善其事必先利其器,Apache Kylin原来支持这么多可视化工具
  18. 微型计算机硬盘安装在哪,微型计算机的硬盘是该机的
  19. 高精地图:激光雷达点云与高精地图融合
  20. 用两个栈实现队列(C语言版)

热门文章

  1. 电力电子技术期末整理
  2. 利用IIS架设用户隔离模式FTP站点
  3. 计算机监控系统设备安装的是,计算机监控系统设备安装质量检查表.docx
  4. 3868mysql数据库应用综合分析题_国开《3868MySQL数据库应用-0007》期末机考【答案】...
  5. Google Earth Engine(GEE)——逐年批量下载sentinel-2多波段影像
  6. python猜拳小游戏实验报告_Java猜拳小游戏程序设计实验报告
  7. 将 Google Chrome 浏览器安装到非系统盘
  8. python实现API的调用
  9. 【虚幻】清理缓存文件(C盘占用过大)
  10. “会计信息管理”一种高技能复合型专业