美文网首页跟着lucky老师学Python
第十六章 pillow模块的使用

第十六章 pillow模块的使用

作者: 帅气的Lucky | 来源:发表于2019-04-01 12:57 被阅读0次

    Pillow

    PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。

    由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。

    安装Pillow

    如果安装了Anaconda,Pillow就已经可用了。否则,需要在命令行下通过pip安装:

    <pre class="md-fences md-end-block md-fences-with-lineno" lang="python" contenteditable="false" cid="c14" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 0.9em; white-space: pre; display: block; break-inside: avoid; text-align: left; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(221, 221, 221); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 1em 6px 0px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-position: inherit inherit; background-repeat: inherit inherit;"> $ pip install pillow</pre>

    如果遇到Permission denied安装失败,请加上sudo重试。

    操作图像

    来看看最常见的图像缩放操作,只需三四行代码:

    <pre class="md-fences md-end-block md-fences-with-lineno" lang="python" contenteditable="false" cid="c20" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 0.9em; white-space: pre; display: block; break-inside: avoid; text-align: left; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(221, 221, 221); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 1em 6px 0px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-position: inherit inherit; background-repeat: inherit inherit;"> from PIL import Image

    打开一个jpg图像文件,注意是当前路径:

    im = Image.open('test.jpg')

    获得图像尺寸:

    w, h = im.size
    print('Original image size: %sx%s' % (w, h))

    缩放到50%:

    im.thumbnail((w//2, h//2))
    print('Resize image to: %sx%s' % (w//2, h//2))

    把缩放后的图像用jpeg格式保存:

    im.save('thumbnail.jpg', 'jpeg')</pre>

    其他功能如切片、旋转、滤镜、输出文字、调色板等一应俱全。

    比如,模糊效果也只需几行代码:

    <pre class="md-fences md-end-block md-fences-with-lineno" lang="python" contenteditable="false" cid="c25" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 0.9em; white-space: pre; display: block; break-inside: avoid; text-align: left; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(221, 221, 221); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 1em 6px 0px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-position: inherit inherit; background-repeat: inherit inherit;"> from PIL import Image, ImageFilter

    打开一个jpg图像文件,注意是当前路径:

    im = Image.open('test.jpg)

    应用模糊滤镜:

    im2 = im.filter(ImageFilter.BLUR)
    im2.save('blur.jpg', 'jpeg')</pre>

    作业:自己写一个实现等比缩放的函数

    相关文章

      网友评论

        本文标题:第十六章 pillow模块的使用

        本文链接:https://www.haomeiwen.com/subject/oyxvbqtx.html