堕天使の煉獄
2018-02
14
23:57:04
記憶がない
いつの間に二月になってるんだ?
二月になってるどころかもう半分終わってるじゃないか……。
って感じで、なんかなんにも出来てないのに時間ばかりはあっという間に過ぎ去っててヤバイです。
まあ全く何もやってなかったと言うことはないのですが……。
随分前に作った、zip書庫ファイル内の画像を一括リネームフォーマットやサイズ整頓ツール。
普通に便利に使ってるのですが。
ある日、とあるいい絵を描く絵描きさん見つけて。あとでゆっくり見直そうとぴくしぶの画像をツールで一括DLしたのですが。
最近は、普通に縦横が3000とか5000とかでファイルサイズもMBな画像がぽこぽこあがってて、昔ほど絵のサイズに気を遣う必要がない時代になったんだなーとかおもたりして。
が、あくまで参考用というか、なんか刺激をうけるためにビューワで眺めたりする用途なのでそんなに高画質なもの必要無かったりする。
で、前述のzip書庫ファイル内の画像を一括処理するツールの処理内容がぴったりだったりするのだけども、現状だとわざわざ一旦zip書庫にしてから画像処理するハメに。
それはなんだかバカらしい。
ということで、書庫内画像でなく普通に画像ファイルを直で登録して一括処理するツールを作ることに。
基本的には画像ファイルリストに対して画像処理すると言う部分はほとんど共通なので、その部分だけをぬきだして別ツールにするだけなので、簡単だなーと。
が、久しぶりにソースコード見てみたら、結構めんどくさい作りになってたりして。
プレビュー画面の処理がメインウィンドウ側にめり込んでたり、UIもメインウィンドウに直接貼り付けてる感じで、分離がし難い感じになってたり。
うーん、コレは邪魔くさい。
ってことで画像プレビュー機能をwidgetとして独立した感じで切り出すことに。
この辺、別件でちまちま作ってるダンジョンRPGのマップエディタのエディタ部分なんかで、いっそダンジョンRPGツクール的なのを作る方が良いのか、マップエディタだけ独立させて作った方がいいのかその辺決めかねてたりするのだけど。マップエディタ部分だけ独立したモジュール単位として切り分けておけばどっちにも対応できるよなーとか。で、他のとこもどんどん再利用可能な形でモジュール化していくべきだよなと思ってた所だったりしたので。
(でもそうするとQtCreatorの画面上では空白のwidgetばかり表示されて完成図が実際に実行してみないと絵として見えないという弊害もあるんだけどさ……)
な感じで、とりあえず出来。
やたらとデカイ画像を一定サイズ以下におさえて、画像フォーマットも統一みたいなのを一括で処理する感じのツール。
似たようなフリーソフトはいくつもあるのだけど、「拡大をしない」という機能が無いのばかりで、結局自作の流れなんですよね。
ついでにプレビュー見ながら画像をゴミ箱に送ったり完全に消去したり、フィルタで特定のファイルを検索→削除or変換処理といった、画像ファイルの整理にも使える感じのツールにしてみたり。
その中で今回ちょっとはまったというか、気になった所は、jpgの品質って、画像のヘッダに情報として載ってないんやねと。
品質も統一する機能とか欲しいなと思って、ヘッダから現在の品質とか取得しようと思ったのだけども、そんなチャンクは存在しないぽ。
ググってみるとなんか
100-(量子化テーブルの平均値×50÷ベーステーブルの平均値)
なる計算式で調べられるっぽいのですけど。普通に画像データを全走査とか必要っぽい。
このツールのように100とか1000とかの画像ファイルをぶっ込んで~みたいな処理前提だと、1ファイル毎に全部メモリに読み込んで走査とか時間かかりすぎるぽ。(現状は先頭の数バイトのヘッダ部分だけ読んでフォーマットやピクセルサイズのみ取得する感じ)
なのでファイルリスト登録時に品質表示は見送ることに。
次に透過付pngの保存方法。
QTではQImageという各種画像フォーマットを包括的に扱える画像クラスがあって便利なのですが。
んで、QTの画像処理の定石として、QImageで読み込んでQPixmapに変換して画像処理を行いQImageにもどしてから保存。という流れがあってQPixmapてのはピクセル毎にRGB値をもつベタのバイナリ形式ですね。QImageで各種フォーマットの仲立ちをして、QPixmapでピクセル単位の処理をする流れです。
が、この流れの中でQImage→QPixmapに変換するときに透過PNGの透過部分のRGB値を強制的に#000000にしてくれやがりますw
なので、透過付PNGをアルファチャンネルのないJPGとかBMPに保存するときに、そのまま保存すると背景は強制で真っ黒けに。
以前のzip書庫内の画像編集では透過pngとか出会う機会があんまなかったのだけども、今回、ぴくしぶからDLした画像だと結構透過pngあって、初めてこれちゃんと処理しないとダメじゃんて気づいたのです。
そんな感じで、新たな問題点なんかも処理したり、あとはトリミング処理に以前は上下左右に何ピクセルと切り取る幅を数値で指定するだけだったのですが、この辺も視覚的にGUIでやりたいなと。
で、こんな感じに。
操作的には写真屋のトンボ機能のアレみたいな感じぽ。
上の画像は、画像処理ツールのほうではなく、zip書庫編集ツールの方ですけど。
モジュール化したあとこっちに戻すときは、ばっさばっさと他の所に出張ってたプレビュー関係のコードを消しまくる必要があったので、このままうごかんようになってわけわからんようになってまったらどないしょ~とひやひやしながらの作業でしたが。
思ったよりもあっさり置き換え完了したうえに、随分とコードもすっきりした感じに。
ついでにトリミングした領域の画像をファイルに書き出したりクリップボードにペーストしたりする機能もつけてみたり。
zip書庫内の画像を解凍することなくプレビューで確認しながら画像の一部を抜き取るのは、たまにそゆことやりたいなと思うことがあったので。
まあ、ビューワとかで表示してプリスクとかでも出来るんですけどw
そんな感じで、ちょっと思いつきで作る&アプデしたりとツール開発やってる間になんだか時間経っちゃってたり。
しかしQT5.10にverあがってたのだけども結構またいろいろ変わってやがる。
プリコンパイラ使ってるとなんでかQTのcore部分のところがなんかinclude順がおかしいときのエラー見たいのでてプリコンパイラつかえなくなっちゃってたり(stdafx.hの中身でなんか順番的に不味いのがあるのかよくわからん)、ランタイムが結構構成かわって、分化したのとか新しく切り出されたのとか増えて古いツールとかリビルドした後その辺の対応が必要でちょっとめんどい……。
んでも今となってはc++で組めるまともなGUI開発環境てQTぐらいしかないんだよな。
でもc++自体の問題か、ここ数年QTて目に見えて衰退してきてる感じあるんですよね。
QT題材にしたwebサイトとかここ最近新しいところあんま見ないですし。
日本のQTのオフィシャルっぽいページはいかにも意識高い系が作ったようなサイトの見た目そのままに碌な情報がない中身ぺらっペラなサイトになってるしw
某巨大掲示板の情報からすると、QTはモバイル関係は糞(使い物にならない)。GUIツール開発は一部の人が使ってるよねレベル。唯一まともに使われてるのは組み込み系ぐらいじゃね?
てな感じらしい。組み込み系もc++だからという点で採用されてる感あるぽ?
個人的にはQMLとかQt QuickとかQT関係で調べ物してるときにググった結果で出てきたところがQt Quick関係のコードとかだとがっかりしてそっとじのパターンなのだけど、そのときに目に入るコードは、普通にc++で組めるんなら手を出す理由はないな……って感じで興味もわかないのですが。
日本語では入門レベル以上のサイトとかはほぼ皆無といって良いレベルなので、ぜんぜん流行ってなさそうだなと思ってたけど、どうも微妙な代物らしい……。
配布時のランタイム回りとか考えると、配布目的のちょっとしたツールなんかはVC#とか使った方がいいんだろうなーとは思う物の、バイナリとかがっつり弄るようなのはやっぱり慣れたc++使いたいしなーと思うと、やっぱ結局QTなんですよね。
このまま廃れてなくなってしまうのも困るなとかおもたり。
しかし、今回ちょっとテスト用になんか画像固めたzipをとおもて、自作絵の作業用フォルダのなかから適当にまとめたのだけども。
一番新しいファイルのタイプスタンプが2016/09/14てどういう事だ……とちょっと震えた(ぉ
絵……描かないとね。
あと日記も最近サボり気味なのでもうちょっと更新頻度上げていこう……。
二月になってるどころかもう半分終わってるじゃないか……。
って感じで、なんかなんにも出来てないのに時間ばかりはあっという間に過ぎ去っててヤバイです。
まあ全く何もやってなかったと言うことはないのですが……。
随分前に作った、zip書庫ファイル内の画像を一括リネームフォーマットやサイズ整頓ツール。
普通に便利に使ってるのですが。
ある日、とあるいい絵を描く絵描きさん見つけて。あとでゆっくり見直そうとぴくしぶの画像をツールで一括DLしたのですが。
最近は、普通に縦横が3000とか5000とかでファイルサイズもMBな画像がぽこぽこあがってて、昔ほど絵のサイズに気を遣う必要がない時代になったんだなーとかおもたりして。
が、あくまで参考用というか、なんか刺激をうけるためにビューワで眺めたりする用途なのでそんなに高画質なもの必要無かったりする。
で、前述のzip書庫ファイル内の画像を一括処理するツールの処理内容がぴったりだったりするのだけども、現状だとわざわざ一旦zip書庫にしてから画像処理するハメに。
それはなんだかバカらしい。
ということで、書庫内画像でなく普通に画像ファイルを直で登録して一括処理するツールを作ることに。
基本的には画像ファイルリストに対して画像処理すると言う部分はほとんど共通なので、その部分だけをぬきだして別ツールにするだけなので、簡単だなーと。
が、久しぶりにソースコード見てみたら、結構めんどくさい作りになってたりして。
プレビュー画面の処理がメインウィンドウ側にめり込んでたり、UIもメインウィンドウに直接貼り付けてる感じで、分離がし難い感じになってたり。
うーん、コレは邪魔くさい。
ってことで画像プレビュー機能をwidgetとして独立した感じで切り出すことに。
この辺、別件でちまちま作ってるダンジョンRPGのマップエディタのエディタ部分なんかで、いっそダンジョンRPGツクール的なのを作る方が良いのか、マップエディタだけ独立させて作った方がいいのかその辺決めかねてたりするのだけど。マップエディタ部分だけ独立したモジュール単位として切り分けておけばどっちにも対応できるよなーとか。で、他のとこもどんどん再利用可能な形でモジュール化していくべきだよなと思ってた所だったりしたので。
(でもそうするとQtCreatorの画面上では空白のwidgetばかり表示されて完成図が実際に実行してみないと絵として見えないという弊害もあるんだけどさ……)
な感じで、とりあえず出来。
やたらとデカイ画像を一定サイズ以下におさえて、画像フォーマットも統一みたいなのを一括で処理する感じのツール。
似たようなフリーソフトはいくつもあるのだけど、「拡大をしない」という機能が無いのばかりで、結局自作の流れなんですよね。
ついでにプレビュー見ながら画像をゴミ箱に送ったり完全に消去したり、フィルタで特定のファイルを検索→削除or変換処理といった、画像ファイルの整理にも使える感じのツールにしてみたり。
その中で今回ちょっとはまったというか、気になった所は、jpgの品質って、画像のヘッダに情報として載ってないんやねと。
品質も統一する機能とか欲しいなと思って、ヘッダから現在の品質とか取得しようと思ったのだけども、そんなチャンクは存在しないぽ。
ググってみるとなんか
100-(量子化テーブルの平均値×50÷ベーステーブルの平均値)
なる計算式で調べられるっぽいのですけど。普通に画像データを全走査とか必要っぽい。
このツールのように100とか1000とかの画像ファイルをぶっ込んで~みたいな処理前提だと、1ファイル毎に全部メモリに読み込んで走査とか時間かかりすぎるぽ。(現状は先頭の数バイトのヘッダ部分だけ読んでフォーマットやピクセルサイズのみ取得する感じ)
なのでファイルリスト登録時に品質表示は見送ることに。
次に透過付pngの保存方法。
QTではQImageという各種画像フォーマットを包括的に扱える画像クラスがあって便利なのですが。
んで、QTの画像処理の定石として、QImageで読み込んでQPixmapに変換して画像処理を行いQImageにもどしてから保存。という流れがあってQPixmapてのはピクセル毎にRGB値をもつベタのバイナリ形式ですね。QImageで各種フォーマットの仲立ちをして、QPixmapでピクセル単位の処理をする流れです。
が、この流れの中でQImage→QPixmapに変換するときに透過PNGの透過部分のRGB値を強制的に#000000にしてくれやがりますw
なので、透過付PNGをアルファチャンネルのないJPGとかBMPに保存するときに、そのまま保存すると背景は強制で真っ黒けに。
以前のzip書庫内の画像編集では透過pngとか出会う機会があんまなかったのだけども、今回、ぴくしぶからDLした画像だと結構透過pngあって、初めてこれちゃんと処理しないとダメじゃんて気づいたのです。
そんな感じで、新たな問題点なんかも処理したり、あとはトリミング処理に以前は上下左右に何ピクセルと切り取る幅を数値で指定するだけだったのですが、この辺も視覚的にGUIでやりたいなと。
で、こんな感じに。
操作的には写真屋のトンボ機能のアレみたいな感じぽ。
上の画像は、画像処理ツールのほうではなく、zip書庫編集ツールの方ですけど。
モジュール化したあとこっちに戻すときは、ばっさばっさと他の所に出張ってたプレビュー関係のコードを消しまくる必要があったので、このままうごかんようになってわけわからんようになってまったらどないしょ~とひやひやしながらの作業でしたが。
思ったよりもあっさり置き換え完了したうえに、随分とコードもすっきりした感じに。
ついでにトリミングした領域の画像をファイルに書き出したりクリップボードにペーストしたりする機能もつけてみたり。
zip書庫内の画像を解凍することなくプレビューで確認しながら画像の一部を抜き取るのは、たまにそゆことやりたいなと思うことがあったので。
まあ、ビューワとかで表示してプリスクとかでも出来るんですけどw
そんな感じで、ちょっと思いつきで作る&アプデしたりとツール開発やってる間になんだか時間経っちゃってたり。
しかしQT5.10にverあがってたのだけども結構またいろいろ変わってやがる。
プリコンパイラ使ってるとなんでかQTのcore部分のところがなんかinclude順がおかしいときのエラー見たいのでてプリコンパイラつかえなくなっちゃってたり(stdafx.hの中身でなんか順番的に不味いのがあるのかよくわからん)、ランタイムが結構構成かわって、分化したのとか新しく切り出されたのとか増えて古いツールとかリビルドした後その辺の対応が必要でちょっとめんどい……。
んでも今となってはc++で組めるまともなGUI開発環境てQTぐらいしかないんだよな。
でもc++自体の問題か、ここ数年QTて目に見えて衰退してきてる感じあるんですよね。
QT題材にしたwebサイトとかここ最近新しいところあんま見ないですし。
日本のQTのオフィシャルっぽいページはいかにも意識高い系が作ったようなサイトの見た目そのままに碌な情報がない中身ぺらっペラなサイトになってるしw
某巨大掲示板の情報からすると、QTはモバイル関係は糞(使い物にならない)。GUIツール開発は一部の人が使ってるよねレベル。唯一まともに使われてるのは組み込み系ぐらいじゃね?
てな感じらしい。組み込み系もc++だからという点で採用されてる感あるぽ?
個人的にはQMLとかQt QuickとかQT関係で調べ物してるときにググった結果で出てきたところがQt Quick関係のコードとかだとがっかりしてそっとじのパターンなのだけど、そのときに目に入るコードは、普通にc++で組めるんなら手を出す理由はないな……って感じで興味もわかないのですが。
日本語では入門レベル以上のサイトとかはほぼ皆無といって良いレベルなので、ぜんぜん流行ってなさそうだなと思ってたけど、どうも微妙な代物らしい……。
配布時のランタイム回りとか考えると、配布目的のちょっとしたツールなんかはVC#とか使った方がいいんだろうなーとは思う物の、バイナリとかがっつり弄るようなのはやっぱり慣れたc++使いたいしなーと思うと、やっぱ結局QTなんですよね。
このまま廃れてなくなってしまうのも困るなとかおもたり。
しかし、今回ちょっとテスト用になんか画像固めたzipをとおもて、自作絵の作業用フォルダのなかから適当にまとめたのだけども。
一番新しいファイルのタイプスタンプが2016/09/14てどういう事だ……とちょっと震えた(ぉ
絵……描かないとね。
あと日記も最近サボり気味なのでもうちょっと更新頻度上げていこう……。
Sun
Mon
Tue
Wed
Thu
Fri
Sat
01
02
03
04
05
06
07
08
09
10
11
[建国記念の日]
12
[振替]
13
14
■
■
記憶がない
15
16
17
18
19
20
21
22
23
24
25
26
27
28
total:2083432 t:101 y:81
■記事タイトル■
■年度別リスト■
2024年
2024年12月(0)2024年11月(2)
2024年10月(1)
2024年09月(2)
2024年08月(1)
2024年07月(1)
2024年06月(5)
2024年05月(2)
2024年04月(1)
2024年03月(6)
2024年02月(4)
2024年01月(3)
2023年
2023年12月(3)2023年11月(1)
2023年10月(2)
2023年09月(3)
2023年08月(3)
2023年07月(3)
2023年06月(7)
2023年05月(8)
2023年04月(2)
2023年03月(1)
2023年02月(2)
2023年01月(3)
2022年
2022年12月(4)2022年11月(3)
2022年10月(1)
2022年09月(3)
2022年08月(3)
2022年07月(2)
2022年06月(1)
2022年05月(3)
2022年04月(2)
2022年03月(2)
2022年02月(1)
2022年01月(6)
2021年
2021年12月(8)2021年11月(3)
2021年10月(4)
2021年09月(6)
2021年08月(2)
2021年07月(1)
2021年06月(3)
2021年05月(2)
2021年04月(2)
2021年03月(3)
2021年02月(1)
2021年01月(4)
2020年
2020年12月(3)2020年11月(7)
2020年10月(2)
2020年09月(3)
2020年08月(1)
2020年07月(3)
2020年06月(7)
2020年05月(5)
2020年04月(8)
2020年03月(4)
2020年02月(2)
2020年01月(4)
2019年
2019年12月(1)2019年11月(1)
2019年10月(2)
2019年09月(1)
2019年08月(3)
2019年07月(2)
2019年06月(2)
2019年05月(2)
2019年04月(4)
2019年03月(1)
2019年02月(7)
2019年01月(1)
2018年
2018年12月(1)2018年11月(1)
2018年10月(5)
2018年09月(1)
2018年08月(5)
2018年07月(1)
2018年06月(1)
2018年05月(1)
2018年04月(2)
2018年03月(2)
2018年02月(1)
2018年01月(1)
2017年
2017年12月(2)2017年11月(1)
2017年10月(2)
2017年09月(5)
2017年08月(8)
2017年07月(2)
2017年06月(1)
2017年05月(1)
2017年04月(3)
2017年03月(5)
2017年02月(7)
2017年01月(8)
2016年
2016年12月(7)2016年11月(2)
2016年10月(3)
2016年09月(7)
2016年08月(8)
2016年07月(10)
2016年06月(17)
2016年05月(6)
2016年04月(8)
2016年03月(10)
2016年02月(5)
2016年01月(10)
2015年
2015年12月(7)2015年11月(7)
2015年10月(13)
2015年09月(7)
2015年08月(7)
2015年07月(5)
2015年06月(4)
2015年05月(5)
2015年04月(2)
2015年03月(4)
2015年02月(1)
2015年01月(7)
2014年
2014年12月(12)2014年11月(8)
2014年10月(4)
2014年09月(6)
2014年08月(7)
2014年07月(4)
2014年06月(2)
2014年05月(5)
2014年04月(4)
2014年03月(8)
2014年02月(4)
2014年01月(8)
2013年
2013年12月(15)2013年11月(8)
2013年10月(3)
2013年09月(3)
2013年08月(8)
2013年07月(0)
2013年06月(0)
2013年05月(0)
2013年04月(0)
2013年03月(0)
2013年02月(0)
2013年01月(0)
■レス履歴■
■ファイル抽出■
■ワード検索■
堕天使の煉獄
https://rengoku.sakura.ne.jp
管理人
織田霧さくら(oda-x)
E-mail (■を@に)
oda-x■rengoku.sakura.ne.jp