pythonurl图片大小
1. python如何获取图片长宽等信息
使用PIL模块,windows安装包下载:
http://www.pythonware.com/procts/pil/
使用方法
#coding:utf8
#获取指定图片的长和宽
fromPILimportImage
img=Image.open("img.jpg")
printimg.size
运行结果:
(52,54)
2. Python 读取文件夹将里面的图片处理成想要的大小并保存在个指定位置
fromPILimportImage
importos.path
importglob
defconvertjpg(jpgfile,outdir,width=1280,height=720):
img=Image.open(jpgfile)
new_img=img.resize((width,height),Image.BILINEAR)
new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
forjpgfileinglob.glob("D:/python/*.jpg"):
convertjpg(jpgfile,"D:/newfile")
convertjpg调用时可以有四个参数,如convertjpg(jpgfile,"D:/newfile",800,600)
Image open了jpg用完后要不要close?
3. python 创建固定大小的图片
不知道你对图片的格式有没有要求,如果是bmp的话是没有压缩的。也就是说大小和颜色深度决定了图片的大小。这样也比较容易控制。当然也就不能不改size随便调节文件的大小。
如果是jpg的话,可以通过改变图片的质量来调节文件的大小。
比如
im = Image.open("aa.JPG")
print im.format, im.size, im.mode
print im.size[0]
im.resize((720,540), Image.ANTIALIAS).save('a.jpg', quality = 95)
你也可以做一个循环,对生成的文件大小与目标大小做比较,直到满足条件为止。
只是给个思路,也许帮不上忙。
4. 有网络图片的url怎么获取图片大小和长宽
右键图片,另存为,保存下来。再右键下载好的图片,选择属性,就可以看到了
5. python中PLE调整图片大小,等比例压缩文件,怎么写代码
How do I read image data from a URL in Python?
importosimportImagefileName='c:/py/jb51.jpg'fp=open(fileName,'rb')im=Image.open(fp)fp.close()x,y=im.sizeifx <300or y <300:os.remove(fileName)from PIL import Imageimport requestsimport numpy as npfrom StringIO import StringIOresponse = requests.get(url)img = np.array(Image.open(StringIO(response.content)))
from PIL import Imageimport urllib2
im = Image.open(urllib2.urlopen(url))
or if you userequests:
from PIL import Imageimport requests
im = Image.open(requests.get(url, stream=True).raw)
[python] view plain
#coding:utf-8
'''
python图片处理
'''
importImageasimage
#等比例压缩图片
defresizeImg(**args):
args_key={'ori_img':'','dst_img':'','dst_w':'','dst_h':'','save_q':75}
arg={}
forkeyinargs_key:
ifkeyinargs:
arg[key]=args[key]
im=image.open(arg['ori_img'])
ori_w,ori_h=im.size
widthRatio=heightRatio=None
ratio=1
if(ori_wandori_w>arg['dst_w'])or(ori_handori_h>arg['dst_h']):
ifarg['dst_w']andori_w>arg['dst_w']:
widthRatio=float(arg['dst_w'])/ori_w#正确获取小数的方式
ifarg['dst_h']andori_h>arg['dst_h']:
heightRatio=float(arg['dst_h'])/ori_h
ifwidthRatioandheightRatio:
ifwidthRatio<heightRatio:
ratio=widthRatio
else:
ratio=heightRatio
ifwidthRatioandnotheightRatio:
ratio=widthRatio
ifheightRatioandnotwidthRatio:
ratio=heightRatio
newWidth=int(ori_w*ratio)
newHeight=int(ori_h*ratio)
else:
newWidth=ori_w
newHeight=ori_h
im.resize((newWidth,newHeight),image.ANTIALIAS).save(arg['dst_img'],quality=arg['save_q'])
'''
image.ANTIALIAS还有如下值:
NEAREST:usenearestneighbour
BILINEAR:
BICUBIC:
ANTIALIAS:bestdown-sizingfilter
'''
#裁剪压缩图片
defclipResizeImg(**args):
args_key={'ori_img':'','dst_img':'','dst_w':'','dst_h':'','save_q':75}
arg={}
forkeyinargs_key:
ifkeyinargs:
arg[key]=args[key]
im=image.open(arg['ori_img'])
ori_w,ori_h=im.size
dst_scale=float(arg['dst_h'])/arg['dst_w']#目标高宽比
ori_scale=float(ori_h)/ori_w#原高宽比
ifori_scale>=dst_scale:
#过高
width=ori_w
height=int(width*dst_scale)
x=0
y=(ori_h-height)/3
else:
#过宽
height=ori_h
width=int(height*dst_scale)
x=(ori_w-width)/2
y=0
#裁剪
box=(x,y,width+x,height+y)
#这里的参数可以这么认为:从某图的(x,y)坐标开始截,截到(width+x,height+y)坐标
#所包围的图像,crop方法与php中的image方法大为不一样
newIm=im.crop(box)
im=None
#压缩
ratio=float(arg['dst_w'])/width
newWidth=int(width*ratio)
newHeight=int(height*ratio)
newIm.resize((newWidth,newHeight),image.ANTIALIAS).save(arg['dst_img'],quality=arg['save_q'])
#水印(这里仅为图片水印)
defwaterMark(**args):
args_key={'ori_img':'','dst_img':'','mark_img':'','water_opt':''}
arg={}
forkeyinargs_key:
ifkeyinargs:
arg[key]=args[key]
im=image.open(arg['ori_img'])
ori_w,ori_h=im.size
mark_im=image.open(arg['mark_img'])
mark_w,mark_h=mark_im.size
option={'leftup':(0,0),'rightup':(ori_w-mark_w,0),'leftlow':(0,ori_h-mark_h),
'rightlow':(ori_w-mark_w,ori_h-mark_h)
}
im.paste(mark_im,option[arg['water_opt']],mark_im.convert('RGBA'))
im.save(arg['dst_img'])
#Demon
#源图片
ori_img='D:/tt.jpg'
#水印标
mark_img='D:/mark.png'
#水印位置(右下)
water_opt='rightlow'
#目标图片
dst_img='D:/python_2.jpg'
#目标图片大小
dst_w=94
dst_h=94
#保存的图片质量
save_q=35
#裁剪压缩
clipResizeImg(ori_img=ori_img,dst_img=dst_img,dst_w=dst_w,dst_h=dst_h,save_q=save_q)
#等比例压缩
#resizeImg(ori_img=ori_img,dst_img=dst_img,dst_w=dst_w,dst_h=dst_h,save_q=save_q)
#水印
#waterMark(ori_img=ori_img,dst_img=dst_img,mark_img=mark_img,water_opt=water_opt)
[html] view plain
6. python opencv中imshow输出图像太大,如何调整输出尺寸
通过resize重置图片尺寸
参数:图片,输出图片尺寸(一般我不用这个,我传None),宽的比例,高的比例
例子:将图片img,缩小一半显示,那么宽高为原尺寸的0.5倍
img = cv2.resize(img,None,fx=0.5,fy=0.5)
设置完尺寸后再显示
cv2.imshow('img',img)
cv2.waitKey(0)
.......
希望我的回答对你有帮助!
7. 通过url地址改变图片大小
很简单
你就是想通过url来改变同一张图片的大小
假如图片:章001.png;初始像素10*10px;
章001.png;初始像素10*10px;
章002.png;初始像素20*20px;
章003.png;初始像素30*30px;
多创建几个像素不同内容
相同的图片
就可以来
地址/!/both/长x宽使用这种地址请求根据你使用什么框架来决定的
spring
mvc就可以实现
地址/!/both/长x宽/(restful风格)
8. 如何用Python方法获取图片的准确尺寸
先安装pillow库
然后运行:
from PIL import Image
img = Image.open('图片路径')
print(img.size)
返回的是图片的 高×宽
9. python如何固定图片像素的大小
你是想固定图片的大小的话,可以利用opencv读取图片后,resize到你想要的大小,再保存到本地。
10. python 如何将大量图片的url保存到本地
你如果要保存图片的url,直接把imgsrc写入本地文件就可以了,urllib.request.urlretrieve(imgsrc)这个的意思是你要保存的不是图片的url,而是要把图片下载下来,这个是要批量爬取网站上的图片,需要考虑网站的反爬虫措施了。