Tumblpy (PythonのTumblrモジュール) で複数の画像を投稿する

サンプルコードが無かったので。

paramsのdata keyのところに画像のファイルオブジェクトのリストを渡すだけ。

Sample

Python 3 で実行

from tumblpy import Tumblpy


def main():
    BLOG_URL = "metyashiko.tumblr.com"
    consumer_key = ""
    consumer_secret = ""
    token = ""
    token_secret = ""

    t = Tumblpy(consumer_key, consumer_secret, token, token_secret)

    params = {
        "type": "photo",
        "caption": "TEST",
        "tags": "Tag1, Tag2",
    }

    images = ["image1.jpg", "image2.jpg"]
    for i, image in enumerate(images):
        params["data[{}]".format(i)] = open(image, "rb")

    post = t.post('post', blog_url=BLOG_URL, params=params)


if __name__ == '__main__':
    main()

Pythonでフォントを指定して数字の画像ファイルを生成する

Python3とPILが必要(Anacondaを使うと勝手に入ってて便利ですね)。

フォントのディレクトリや画像サイズを適宜変えるとよさそう。

"""
フォントを指定して数字の文字画像を生成する(黒背景白文字)
"""
import os
import re
from PIL import Image, ImageDraw, ImageFont
 
SIZE = W, H = 28, 28
 
 
def num_to_english(x):
    """ 数字の英語文字列を返す """
    assert 0 <= x <= 9, "Input int x (0 <= x <= 9)"
    return ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE")[x]
 
 
def make_image(idx, font_name):
    """ フォントを指定して 0-9 の画像ファイルを作る """
    fnt = ImageFont.truetype("C:/Windows/Fonts/{}".format(font_name), 25)
    for i in range(10):
        back_image = Image.new("RGBA", SIZE, (255, 255, 255, 0))
        txt_image = Image.new('RGBA', SIZE, (0, 0, 0, 255))
        draw = ImageDraw.Draw(txt_image)
 
        tw, th = fnt.getsize(str(i))  # フォントを指定した時のサイズ(位置計算に使用)
        draw.text(((W - tw) / 2, (H - th) / 2), str(i), font=fnt, fill=(255, 255, 255, 255))
        file_name = "{}_{}.png".format(num_to_english(i), idx)
        out = Image.alpha_composite(back_image, txt_image)
        out.save("images/" + file_name)
 
 
def main():
    # ttfファイルのみ取得する
    rp = re.compile(".*ttf")
    font_list = [fnt for fnt in os.listdir("C:/Windows/Fonts") if rp.match(fnt)]
 
    for idx, font_name in enumerate(font_list):
        make_image(idx, font_name)
 
 
if __name__ == '__main__':
    main()

0-9の数字画像がたくさん得られます。

結果の一部

f:id:fushime2:20170113193620p:plainf:id:fushime2:20170113193628p:plainf:id:fushime2:20170113193641p:plainf:id:fushime2:20170113193650p:plainf:id:fushime2:20170113193707p:plainf:id:fushime2:20170113193719p:plain

基本情報受かった

f:id:fushime2:20161119201523j:plain

午前午後共に合格ラインぎりぎりだった。

勉強に使ったのは基本情報技術者試験ドットコムというサイトで、午前の過去問の一問一答を 3 年分埋めたりした。安定させるためにもう少しやるべきだったと思う。

午後はアルゴリズムが 1 問ミスで C 言語の問題は時間が無くて適当に選んだけどなんとかなったらしい。よかったですね。