如何完成此python函数以保存在同一个文件夹中? [英] How to complete this python function to save in the same folder?

查看:558
本文介绍了如何完成此python函数以保存在同一个文件夹中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试编写我的第一个真正的python函数。我想要完成的是搜索给定的文件夹,然后打开所有图像并将它们合并在一起,以便制作幻灯片图像。想象一下,在一张图像中堆叠在彼此顶部的5个图像。

I am trying to write my first real python function that does something real. What i want to accomplish is searching a given folder, and then open all images and merging them together so they make a filmstrip image. Imagine 5 images stacked on top of eachother in one image.

我现在有了这个代码,这应该是相当不错的,但可能需要一些修改:

I have this code now, which should be pretty much ok, but propably needs some modification:

import os
import Image

def filmstripOfImages():

    imgpath = '/path/here/'
    files = glob.glob(imgpath + '*.jpg')

    imgwidth = files[0].size[0]
    imgheight = files[0].size[1]
    totalheight = imgheight * len(files)

    filename = 'filmstrip.jpg'
    filmstrip_url = imgpath + filename

    # Create the new image. The background doesn't have to be white
    white = (255,255,255)
    filmtripimage = Image.new('RGB',(imgwidth, totalheight),white)  
    row = 0
    for file in files:
        img = Image.open(file)

        left = 0
        right = left + imgwidth
        upper = row*imgheight
        lower = upper + imgheight
        box = (left,upper,right,lower)
        row += 1

        filmstripimage.paste(img, box)
    try:
        filmstripimage.save(filename, 'jpg', quality=90, optimize=1)
    except:
        filmstripimage.save(miniature_filename, 'jpg', quality=90)")

我如何修改它以便将新的filmstrip.jpg保存在我加载的同一目录中图片来自?它可能有一些缺失或错误的东西,任何人都有线索?

How do i modify this so that it saves the new filmstrip.jpg in the same directory as I loaded the images from? And it probably has some things that are missing or wrong, anybody got a clue?

相关问题:如何在python中从图像文件夹生成幻灯片图像?

推荐答案

这不是你问题的答案,但可能有帮助:

It is not an answer to your question, but It might be helpful:

#!/usr/bin/env python
import Image

def makefilmstrip(images, mode='RGB', color='white'):
    """Return a combined (filmstripped, each on top of the other) image of the images.

    """
    width  = max(img.size[0] for img in images)
    height = sum(img.size[1] for img in images)

    image = Image.new(mode, (width, height), color) 

    left, upper = 0, 0
    for img in images:
        image.paste(img, (left, upper))
        upper += img.size[1]

    return image

if __name__=='__main__':
    # Here's how it could be used:
    from glob import glob
    from optparse import OptionParser

    # process command-line args
    parser = OptionParser()
    parser.add_option("-o", "--output", dest="file",
                      help="write combined image to OUTPUT")

    options, filepatterns = parser.parse_args()
    outfilename = options.file

    filenames = []
    for files in map(glob, filepatterns):
        if files:
            filenames += files

    # construct image
    images = map(Image.open, filenames)    
    img = makefilmstrip(images)
    img.save(outfilename) 

示例:

$ python filmstrip.py -o output.jpg *.jpg

这篇关于如何完成此python函数以保存在同一个文件夹中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆