python下载图片(2)

简介: #-*- coding: UTF-8 -*- import urllib2, re,datetime,time, os,sys from PIL import Image, ImageDraw, ImageFont from math import atan, degrees # ...

#-*- coding: UTF-8 -*-
import urllib2, re,datetime,time, os,sys
from PIL import Image, ImageDraw, ImageFont
from math import atan, degrees

#
#图片下载类
#功能:下载图片,生成缩略图,生成水印图
#
class downloadPic:
def __init__(self,picDir,Font):
self.picDir=picDir
self.FONT = Font

def getFilename(self,urlT):
#print urlT
ndate=datetime.datetime.now()

if not os.path.exists('%s%s' %(self.picDir,ndate.year)):
os.mkdir('%s%s' %(self.picDir,ndate.year))
if not os.path.exists('%s%s/%s' % (self.picDir,ndate.year,ndate.month)):
os.mkdir('%s%s/%s' % (self.picDir,ndate.year,ndate.month))
if not os.path.exists('%s%s/%s/%s' % (self.picDir,ndate.year,ndate.month,ndate.day)):
os.mkdir('%s%s/%s/%s' % (self.picDir,ndate.year,ndate.month,ndate.day))
if not os.path.exists('%s%s/%s/%s/%s' % (self.picDir,ndate.year,ndate.month,ndate.day,'src')):
os.mkdir('%s%s/%s/%s/%s' % (self.picDir,ndate.year,ndate.month,ndate.day,'small'))
os.mkdir('%s%s/%s/%s/%s' % (self.picDir,ndate.year,ndate.month,ndate.day,'mark'))
os.mkdir('%s%s/%s/%s/%s' % (self.picDir,ndate.year,ndate.month,ndate.day,'src'))
extname=urlT.split('.')
extname=extname[len(extname)-1]

ntime="%s.%s0000" % (int(time.mktime(ndate.timetuple())),ndate.microsecond)
ntime=ntime[:17]
filename='%s%s/%s/%s/src/%s.%s' % (self.picDir,ndate.year,ndate.month,ndate.day,ntime,extname)
print filename
self
return [filename,ntime]#图片全地址,保存数据库ID
def downloadPic(self,urlT,filenameT):

request = urllib2.Request(urlT)
opener = urllib2.build_opener()
f = opener.open(request)
#print f.headers.dict['content-type']
#if f.headers.dict['content-type']=='image/jpeg':
#保存到文件
xfile = open(filenameT, 'wb')
xfile.write(f.read())
xfile.close()
print '下载图片%s ok' % urlT
return True
#else:
#TODO 抛出异常
#raise Exception,'not img'
def markPic(self,srcFileName,text,markFileName):
img = Image.open(srcFileName).convert("RGB")
watermark = Image.new("RGBA", (img.size[0], img.size[1]))
draw = ImageDraw.ImageDraw(watermark, "RGBA")
size = 0
while True:
size += 1
nextfont = ImageFont.truetype(self.FONT, size)
nexttextwidth, nexttextheight = nextfont.getsize(text)
if nexttextwidth+nexttextheight/3 > watermark.size[0]:
break
font = nextfont
textwidth, textheight = nexttextwidth, nexttextheight
draw.setfont(font)
draw.text(((watermark.size[0]-textwidth)/2,
(watermark.size[1]-textheight)/2), text)
watermark = watermark.rotate(degrees(atan(float(img.size[1])/img.size[0])),
Image.BICUBIC)
mask = watermark.convert("L").point(lambda x: min(x, 55))
watermark.putalpha(mask)
img.paste(watermark, None, watermark)
img.thumbnail((300, 300))
img.save(markFileName)
def smallPic(self,srcFileName,smallFileNmae):
im = Image.open(srcFileName)
im.thumbnail((100, 100))
im.save(smallFileNmae)

目录
相关文章
|
3月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
376 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
3月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1461 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
1天前
|
前端开发 搜索推荐 编译器
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
|
3月前
|
Python
Python实用记录(六):如何打开txt文档并删除指定绝对路径下图片
这篇文章介绍了如何使用Python打开txt文档,删除文档中指定路径的图片,并提供了一段示例代码来展示这一过程。
37 1
|
3月前
|
计算机视觉 Python
Python实用记录(一):如何将不同类型视频按关键帧提取并保存图片,实现图片裁剪功能
这篇文章介绍了如何使用Python和OpenCV库从不同格式的视频文件中按关键帧提取图片,并展示了图片裁剪的方法。
103 0
|
2月前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
3月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
181 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
3月前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
3月前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
3月前
|
Python
Python 三方库下载安装
Python 三方库下载安装
37 1