Latest Entries

自分の絵はAI学習に使われる心配が無い


自分の絵はAI学習に使われる心配が無い。

下手だからな。

*

Python Imaging Library(PIL)はPillowに/画像の減色


Python Imaging Library(PIL)もう使えないのかと思ったら
後継でPillowになっていたのか…超今更気づいた
PILのwiki: https://ja.wikipedia.org/wiki/Python_Imaging_Library

で、調べていたのはpngの減色方法(ファイルサイズを小さくしたい)。
PILでできるという情報があった。
https://water2litter.net/rum/post/python_pillow_quantize/

だいいち何で今までPILの後継に気づかなかったかといえば
PIL使えんのかと思って可能な限りOpenCVを使おうとしていたから。
で、OpenCVでできんのか?と思ったら
cv2.kmeansというのがあるらしい。
256^3 → 256色とかでなくもっと少ない色数にする用な感じがするが。
https://tat-pytone.hatenablog.com/entry/2019/06/13/210251

IrfanViewで透過PNGが扱えれば一発なんだが。。悔しみ。。

Kritaをpythonに組み込むこともできるのね。
https://docs.krita.org/ja/user_manual/python_scripting/introduction_to_python_scripting.html

pngquantというのも見つけた。この用途専用ツールな模様。
…なんだ、これのGUIツールがPNGooだったのか。PNGooは昔使った。
やっぱり大人しくPNGoo使うのが無難なのか。
https://pngquant.org/

おしまい。


Pythonでcsvを開く→ファイル名変更


こんな感じでやった。思い出したいとき用のメモ。

#%%

import os
import pandas as pd
import re

path_img = "XXXX" # フォルダパス
path_csv = "XXXX.csv" # csvファイルパス

#%%

# ファイル名を変更したいファイル名のリストを取得(ファイルはpath_imgフォルダに格納されている)
file_all = os.listdir(path_img)
# csvを読み込み
read_csv = pd.read_csv(path_csv, encoding='shift_jis', index_col=0)

#%%

# ここでは最初の1つのみ変更する例(for文にすれば全て一気に変更可)
i = 0

file_tmp = file_all[i]

# 今回はファイル名の最初の7文字がcsv内の左列の番号(index_col)なのでそれを取得
c_num = int(file_tmp[:7])

# csvから変更後の名前を取得
c_num = read_csv.at[c_num, "変更後の名"]

# ファイル名に使えない文字は置換
c_name_replace = re.sub(r'[\\|/|:|?|.|"|<|>|\|]', '-', c_num)

# ファイル名に共通の文字列を変更後の名前に置換
file_tmp_new = file_tmp.replace("c_crop_sm", c_name_replace)

os.rename(path_img + "/" + file_tmp, path_img + "/" + file_tmp_new)

OpenCV久々に使った


タイトルの通り。
上手く動かんと思ったら日本語パスのせいだった。
Python3でも全角は迂闊に使うべきではない模様。


【OpenCVについていい感じにまとまってるサイト】

画像上の基本的な処理 — OpenCV-Python Tutorials 1 documentation
↑オリジナルに近そう。

【Python】OpenCVによる画像処理について:基本的なメソッドの使い方 _ OFFICE54
↑1つ目のリンクではimwriteやimshowがないので

最近のゲームこってりしすぎでは


食事のレベルを大まかに分類するとこんな感じだろうか。
  • エネルギー・栄養を摂れる食事(最低限の食事)
  • 毎日食べるのにちょうど良い、そこそこ質の食事(ケの食事)
  • 豪華な食事(ハレの食事)


ゲームも同様だと思う。
  • 容量カツカツなゲーム(ゲームボーイとか?)
  • 十分楽しめるゲーム(スーファミ、GBA辺り)
  • リッチなゲーム(SP3やwiiくらい~?)


周回(作業)の割合にもよるが
例えばプレイ時間1~2時間で10MB、5~10時間で100MBくらい?が
枝葉のバランスが良いというか。
・枝 = プログラムやシナリオ
・葉 = グラフィックやオーディオ
というイメージ(シナリオはRPGやアクションだと葉かも)。

枝の方はあまりリッチにしようがないと思う。
使わない文字列のフォントを除いたり
カタカナとひらがなの「ヘ」を同じ文字で代用するくらい容量をケチっていた時代は
それに伴うゲームシステム的なガマンもあったと思うけど
そこまで頑張らなくてよい時代になったら
あとは「葉」の方をいかにリッチにするかという伸びしろしかない。
…というのが昨今の状況ではないかと。

ゲームを楽しむのにグラフィックやオーディオを付けてた("システムドリブン"と呼んでみる)
 ↓
グラフィックやオーディオを楽しむ手段の1つとしてゲーム("素材ドリブン"と呼んでみる)

という逆転現象と解釈してもよい。

で、個人的には素材ドリブンのやたら容量がでかい(又は主として素材に金をかけてる)ゲームは
あまり好きになれない。
個人制作で作者本人がそういう表現をしたくてやってるなら良いとして、
コンシューマー/商業タイトルで素材に金をかけて売れるゲームにしたてあげようという魂胆だと
なんかうんざりするというか…
ここで冒頭の例えが丁度良い。
ご馳走(ハレの食事)がおいしいといっても、毎日ご馳走を食べたいですか?という話。
毎食ラーメン・カレー・カツ丼・ハンバーグ・ピザ…だったらまぁ病気になるわけで。

久しぶりにコンシューマーゲームやってみたいなぁ…と思って少し探していても
最近の作品で特段惹かれるものがなかったので上記のようなことを考えた次第。
ただの懐古厨かもしれないけど、何の考えも無しにそう切り捨てられるのは腑に落ちないというか
そう切り捨てるならしっくりくる説明がほしい。
まぁ、最近の人たちの脳の処理能力が上がってて(または処理の仕方が変わってて)
スーファミレベルのドット絵ではゲームを楽しむことを阻害するレベルのクオリティだ
とかいうならまぁ…
食事でいうと、舌が肥えて「ケの食事」程度じゃ「最低限の食事」としか思えない、とか。
そういうことか。
でもそれ単に幸せにコストがかかるようになっただけで
低コストで幸せになれるように自分をチューニングした方が幸せになれるんでないか?

舌が肥えるにも良し悪しがあるというか
新鮮なものを美味しいと思うとか
最高峰のものとそうでないものの違いが分かるようになる(解像度上がる)とか
それも良さではあろうけれども…
まぁリッチマンは教養として必要だろうし
自分のような庶民は野菜が新鮮かそうでないか分かる程度で十分では。

単に刺激が強いもの(しょっぱいとか化学調味料だらけとか)に慣れて
どんどん味覚音痴になってく方向は是正した方がいいと思う。
それこそ単に、続けると幸せにコストがかかるようになっていくだけ。

pythonで数字の0埋め・小数点以下の桁数をそろえる


ゼロ埋めする
下記のような感じで「桁数.format(数値)」のような感じにする。

i = 2
print('{:02}'.format(i))

02

i = 50
print('{:02}'.format(i))

50

i = 2
print('{:04}'.format(i))

0002

i = 50
print('{:04}'.format(i))

0050

おまけ:
print('{:-4}'.format(i))
とすると0でなくスペースで埋められる模様。

------------------------------

小数点をまるめる
小数点以下の桁数を指定するには、.[桁数]fとする。
整数部の桁数によらず小数点以下が指定した桁数になる。

print('{:.2f}'.format(123.456))

123.46

print('{:.1f}'.format(23.42))

23.4

---

参考: https://note.nkmk.me/python-format-zero-hex/

ストーリーの回顧録型・時系列型


ストーリーを読んでいるときの
「このとき僕は、この出会いがまさかあんなことの始まりだとは思っていなかった」
のような表現が引っかかるときがある。

初めから回顧録のような
主人公が読者に向けて過去の話を語るような体裁であれば問題ない。

そうではなく、読者は登場人物の隣で出来事を追っているような、
誰も(作者以外)まだ先の出来事を知らない状態という体裁だと
「このとき僕は、この出会いがまさかあんなことの始まりだとは思っていなかった」
のような文言が出てくることで
突然回顧録になるというか時系列が崩れるというか視点が変わるというか。

結局「期待外れ」が問題なので
回顧録型なのか
時系列型なのか(というネーミングでよいのか?
ある程度わかるようになっていてほしいし
特に時系列型で書く場合は絶対に時系列を崩してはいけない、というくらい言いたい。
インパクトのあるシーンを手前に持ってくる手法もよくあるが
これも時系列が崩れるので時系列型では基本的にやってほしくない。
変なメソッドを使わない作品の方が却ってよいまである。

メソッドが使われていると
「あ、メソッド使ってるな」と急にメタ的に捕らえてしまうというケースもある。
メタ認知は「キャラデザうまー」とか仕方ないやつもあるけど。
そういえばキャラ名も、例えば「じゃがいも好きの芋子ちゃん」のように
後天的に決まるファクターを名前が反映されてるのもあまり好きでない。
露骨にギャグとかならいいけどある程度リアリティ重視だったらモヤる。
もちろん「親が芋好きだったから芋子と名付けられ、
私も名付けられたからには関心を向けずにはいられまいとて色々な芋を食べたら実際おいしくてハマった」のような
後天的な経緯があれば問題ない。

ちなみに「いもこ」で変換しても「妹子」か「五百子」しか出ない。

あの東方の曲


ニコニコ動画をかじっていた時代から時々聞いているまらしぃ氏のピアノ演奏動画で
よく演奏されている東方の曲がありますが
唐突にあれの原曲を聞いてみたくなって調べてみた。

風神録のネイティブフェイスという曲らしい。

『東方原曲 風神録 EXTRAボス洩矢諏訪子テーマ ネイティブフェイス』
https://youtu.be/EGBrgWORdWE

こっちも好き。
『東方原曲 永夜抄 EXTRAボス藤原 妹紅のテーマ 月まで届け』
https://youtu.be/9tNv318O7o8


人的資本の情報開示(備忘録)


5000HITありがとうございます!

で。
Voicyで聞いてて知ったのですが
「人的資本の情報開示が望ましいとされる7分野19項目」の内容が
  • 団体労働協約の対象となる従業員の割合
  • 苦情の件数
  • 人権・ハラスメント関連の説明
などなど、結構興味深かった。
詳しくは後で見る。

参考:
人的資本の情報開示とは?項目と政府が進める義務化について解説 _ 人材育成サポーター

**

exec(): カッコ内のコードを実行する

Pythonめも。標記の通り。
似たような名前の変数の量産などに。
ちょっと怖いけど。

使用例)
exec("a = 1")

Appendix

プロフィール

As

Author:As
ご覧いただきありがとうございます。
元々は艦これネタ中心でしたが、最近は日々思う所を書き綴ってます。

コメント・拍手・リンクは大歓迎です、お気軽にどうぞ!過去の記事へのコメントもご遠慮なく。
どうぞよろしくお願いいたします。

[艦これ情報]
サーバー:幌筵(13/12/27開始)
司令lv:103(16/4/23現在)
※現在休止中
[その他]
雪国出身、ここ数年は関東在住

[17/7/16~]

検索フォーム

ブロとも申請フォーム

この人とブロともになる