2013年4月21日日曜日

gentooのpython-pptxで美人の水着画像をpptx化する

python-pptxで美人の水着画像をpptx化する


Shizuoka.pyでちょっと人気だったpythonのパッケージpython-pptxのebuildを作りました。良かったら使って下さい。
まずpython-pptxパッケージをインストールする

karky7 ~ # layman -a karky7
...
...
...
karky7 ~ # emerge -pv dev-python/python-pptx

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] dev-python/beautifulsoup-4.1.3-r1:4  USE="doc {-test}" PYTHON_TARGETS="python2_7 python3_2 -python2_6 -python3_1 (-python3_3)" 129 kB
[ebuild  N     ] dev-python/lxml-3.0.1  USE="doc threads -examples" PYTHON_TARGETS="python2_7 python3_2 -python2_6 -python3_1 (-python3_3)" 3,131 kB
[ebuild  N     ] dev-python/python-pptx-0.2.2::karky7  PYTHON_TARGETS="python2_7 -python2_6" 0 kB

Total: 3 packages (3 new), Size of downloads: 3,259 kB

 * IMPORTANT: 1 news items need reading for repository 'hacking-gentoo'.
 * IMPORTANT: 12 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

karky7 ~ # emerge dev-python/python-pptx


画像収集pythonスクリプトを実行する


適当なディレクトリを掘って、その中でスクリプトを実行する。
これで、かわいい水着のおねぇさんの画像がpptxで出来上がる

cuomo@karky7 ~ $ mkdir mizugi
cuomo@karky7 ~ $ cd mizugi/
cuomo@karky7 ~/mizugi $ python mizugi-pptx.py

#!/usr/bin/python
# -*- coding: utf-8 -*-

from pptx import Presentation
from pptx.util import Inches, Px
import requests
import re

prs = Presentation()
bullet_slidelayout = prs.slidelayouts[0]
c = requests.get('http://matome.naver.jp/odai/2135350364969742801').content
urls = [x.group(1) for x in re.finditer(r'', c)]
for i, url in enumerate(urls[:10], 1):
    img_path = "{}.jpg".format(i)
    r = requests.get(url)
    if r.status_code == 200:
        img = r.content
        with open(img_path, 'w') as f:
            f.write(img)
        shapes = prs.slides.add_slide(bullet_slidelayout).shapes
        shapes.placeholders[0].text = '水着アイドル({})'.format(i)
        top = Inches(1.5)
        led = Inches(3)
        width = Px(280)
        height = int(width * 1.427)
        pic = shapes.add_picture(img_path, led, top, width, height)

prs.save('tamannai.pptx')



これはたまんない、Pythonの無限の可能性を感じる、今日この頃です....


0 件のコメント:

コメントを投稿