GIMPで背景を透過にする

youtu.be

アルファチャンネルを追加する

対象の画像を開いて、「レイヤー」→「透明部分」→「アルファチャンネルの追加」を実行する。
(または、右下の対象レイヤーを右クリックして、「アルファチャンネルの追加」を実行する。)

もし、対象の画像がすでにアルファチャンネルを持っていれば、
「アルファチャンネルの追加」がグレーアウトして実行できないようになっています。

透過にする範囲を選択する

「ツール」→「選択ツール」→「ファジー選択」を選んで、透過にしたい範囲のどこかをクリックする。

ファジー選択は画像の各部分の色の差で境界を判断して範囲選択しているようなので、
選択範囲が思い通りでないときは、左の「しきい値」を変えるとうまくいくかもしれません。

選択範囲を透過にする

Deleteキーを押す。(または、「編集」→「消去」を実行する。)

透過になった範囲は、市松模様になります。

アルファチャンネルがない画像は消去をすると白くなるが、
アルファチャンネルがある画像は消去をすると透過になるらしい。
消しゴムで消去しても同じようになる。

画像をエクスポートする

上書きでよければ、「ファイル」→「XXXへ上書きエクスポート」

Gimpで4つの同じサイズの画像を縦横に並べて結合する

前提
  • 対象の画像のサイズは、幅800ピクセル、高さ600ピクセル
  • 対象の画像を縮小して結合し、結合した画像のサイズを元のサイズと同じサイズにする。
  • 対象の画像は下記の4つ

  • 下の画像が完成したもの。

新しい画像を作成する

「ファイル」→「新しい画像」
キャンバスサイズを結合する画像サイズと同じにする。(幅800ピクセル、高さ600ピクセル)

結合する4つの画像ファイルをレイヤーとして開く

「ファイル」→「レイヤーとして開く」を選んで、対象のファイルを選択する。
(OSのファイルマネージャーの対象のファイルをGimpの画面にドラッグアンドドロップしてもよい)

4つのレイヤーが追加される。

結合する4つの画像を縮小する

4つの画像をまとめて縮小したいので、4つのレイヤーを連結する。
その手順は、4つの各レイヤーのサムネイルの左をクリックして、鎖のマークを表示させる。

4つのレイヤーを連結したら、「ツール」→「変形ツール」→「拡大・縮小」を選ぶ。
「拡大・縮小」ウィンドウで、幅を400ピクセル、高さを300ピクセルに設定し、「拡大・縮小」ボタンを押す。

縮小したら、レイヤーの連結を解除する。鎖のマークをクリックすると解除される。

画像を配置する

「ツール」→「変形ツール」→「整列」を選ぶ。
配置する画像をクリックして選択し、変形ツールの「右揃え」と「下揃え」を使って画像を配置する。

画像をエクスポートする

「ファイル」→「名前をつけてエクスポート」を選んで、画像をエクスポートする。

ImageMagickで4枚の同じサイズの画像を縦横に結合する

4つの同じサイズの画像ファイルがディレクトリに置かれている。
$ ls
1.jpg  2.jpg  3.jpg  4.jpg
$ identify *
1.jpg JPEG 800x600 800x600+0+0 8-bit sRGB 8230B 0.000u 0:00.000
2.jpg JPEG 800x600 800x600+0+0 8-bit sRGB 8229B 0.000u 0:00.000
3.jpg JPEG 800x600 800x600+0+0 8-bit sRGB 8230B 0.000u 0:00.000
4.jpg JPEG 800x600 800x600+0+0 8-bit sRGB 8229B 0.000u 0:00.000

結合前の4枚の画像

1.jpg 2.jpg
3.jpg 4.jpg

方法1

画像を、横に結合することと、縦に結合することを、繰り返す。

1行目に配置する2枚の画像を横に並べて結合する。
$ convert +append 1.jpg 2.jpg 12.jpg
$ identify 12.jpg 
12.jpg JPEG 1600x600 1600x600+0+0 8-bit sRGB 6214B 0.000u 0:00.000
12.jpg
2行目に配置する2枚の画像を横に並べて結合する。
$ convert +append 3.jpg 4.jpg 34.jpg
$ identify 34.jpg 
34.jpg JPEG 1600x600 1600x600+0+0 8-bit sRGB 6093B 0.000u 0:00.000
34.jpg
1行目の画像と2行目の画像を縦に並べて結合する。
$ convert -append 12.jpg 34.jpg 1234.jpg
$ identify 1234.jpg 
1234.jpg JPEG 1600x1200 1600x1200+0+0 8-bit sRGB 13622B 0.000u 0:00.000
1234.jpg
結合した画像のサイズを元の画像サイズと同じにする。(幅と高さをそれぞれ50%にする)
$ convert -resize 50% 1234.jpg 1234resize.jpg
$ identify 1234resize.jpg 
1234resize.jpg JPEG 800x600 800x600+0+0 8-bit sRGB 5024B 0.000u 0:00.000

方法2

縦と横に2つずつタイル状に結合するコマンドを使用する。

結合する
$ montage -tile 2x2 -geometry 100% *.jpg out.jpg
縮小する
$ convert -resize 50% out.jpg resize.jpg

Pythonでheif-convertを実行してHEICファイルをJPEGに一括で変換する

カレントディレクトリの拡張子が「HEIC」のファイルが変換対象
変換後のファイル名はHEICファイルの拡張子を「jpg」に変えたもの

import subprocess
import glob

files = glob.glob('*.HEIC')
for file in files:
    file2 = file[:-5] + '.jpg'
    subprocess.run(['heif-convert', file, file2])

PythonでCSVファイルを辞書に変換する 1列目をキーにして2列目以降を値にする

PythonCSVファイルを辞書に変換する
1列目をキーにして2列目以降を値にする

CSVファイルの内容
sample.csv

k1,v11,v12
k2,v21,v22
k3,v31,v32
with open('sample.csv', 'r') as f:
  d = {}
  for line in f:
    k, v = line.rstrip().split(',', 1) #最初の1項目のみカンマで区切る
    d[k] = v

print(d)

プログラムの実行結果

{'k1': 'v11,v12', 'k2': 'v21,v22', 'k3': 'v31,v32'}

EndeavourOSで日本語入力を設定する

パッケージをインストールする

インストールするパッケージ
fcitx5, fcitx5-configtool, fcitx5-gtk, fcitx5-qt, fcitx5-mozc

最初の4個のパッケージは、「fcitx5-im」というグループに入っているので、
「fcitx5-im」をインストールすれば、まとめてインストールできる。

グループに入っているパッケージは、下記のコマンドで確認できる。

$ pacman -Sg fcitx5-im
fcitx5-im fcitx5
fcitx5-im fcitx5-configtool
fcitx5-im fcitx5-gtk
fcitx5-im fcitx5-qt

インストールコマンド

$ sudo pacman -S fcitx5-im fcitx5-mozc

環境変数を設定する

「~/.xprofile」を作成して、下記の内容を書き込む。

export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5

Python Pillow(PIL)で画像を読み込んでNumPyの配列に変換してRGBの要素ごとに編集する

下記の画像を使用しました。
Biljana JovanovicによるPixabayからの画像

from PIL import Image
import numpy as np

pil_img = Image.open('eggs-gbd58ab03b_640.png')
print('モード', pil_img.mode)

np_img = np.array(pil_img)   #PILからnumpyへ変換
np_img[:, :, 0] = 0   #赤の要素を削除
np_img[:, :, 1] = 0   #緑の要素を削除
new_pil_img = Image.fromarray(np_img)   #numpyからPILへ変換

new_pil_img.show()
new_pil_img.save('out.png')
元の画像
編集後の画像