カテゴリ: program

私はロジックを作る前にまず関数の最初と最後に「はじまた」とか「おわた」とか何とかログを出さないとやる気が出ないのでVC++用のlog4j的なものを探した。まぁ今時#ifdef DEBUG printf(..でもないだろう。
log4cppという実にそれっぽい名前のものがあるにはあったが使うには自分でコンパイルする必要がありコンパイル失敗。そういえばSourceForge時代のOSS民は何故かDLLであろうともビルド済みバイナリを置かない習慣だった。その点Javaの人はOSSと言いつつもjarはしっかりMavenとかに置く風習があって有難い。log4cppにはVC++5,6,7用のslnも付いているというのにそれでビルドできぬとは解せないがまぁここに時間をかけても仕方ないので諦める。昔のOSS民はMicrosoftを何となく敵視していたのでこういう所は不親切で、結構makeなりヘッダなりを自分で手を入れないと駄目な事がママある。
他を探すとspddoc https://github.com/gabime/spdlog というのがあった。githubだし比較的最近のだろう。こっちはzipを展開してできるincludeをプロジェクトのインクルードディレクトリに加えればOK。素晴らしい。
0212

あとは上記のページのサンプル通り。
サンプルが何も考えずともまず動くのは重要だ。コンパイルが通らないなど言語道断。

スラスラわかるC++ 第2版
矢沢 久雄
翔泳社
2018-07-17



このエントリーをはてなブックマークに追加 mixiチェック

マジか?マジで?マジだ!!Community 2019という。昔のExpressのようにショボい奴ではなく立派に使える奴。
4.2、5.0、6を飛ばして2005と、結構金を払ったというのに…。
このCommunity 2019の2005より良い所の一つは、コマンドラインなプログラムをテスト実行した後、DOS窓が開いたままになる所だな。2005だとHello Woldとか一瞬黒いウィンドウが開いて瞬時に消えるので何が何やら。

VisualC++2019パーフェクトマスター (Perfect Master)
俊哉, 金城
秀和システム
2019-11-21



このエントリーをはてなブックマークに追加 mixiチェック

訳あって今更10数年ぶりにVC++を使う必要に迫られた。
だがしかし。
VC++本は引っ越しの時にまとめ古本屋送り、既にVisualStudioの使い方も忘れ切っている始末。どうしよう。
という訳で無ければ借りてくれば良いのだと図書館で借りてきた。
なんと猫でもわかるという。ネコの40倍、1.3kgもの大きさの脳を持つヒトである私なら楽勝だろう。
ちゃんとWin32API主体の正統派だ。知りたかったDLLのロードの仕方も書いてある。最近はVC++本と見せかけて中身は.NETだったりで油断がならないが、.NETならC#とかBASICとかもうちょっとこう、楽そうなのがあるのではなかろうか。
それにしてもVC++でWindowsプログラミングをこなすとは最近の猫は賢いな。おそらく都市化によるフリン効果だろう。


このエントリーをはてなブックマークに追加 mixiチェック

これの続き
何かイマイチ理解しないまま、
magick ( -page +0+0 -label "eye" "0009.0001.png"[0] -background none -mosaic -set colorspace RGB ) ( -page +0+0 -label "body" "0000.0073.png"[0] -background none -mosaic -set colorspace RGB ) ( -clone 0--1 -background none -mosaic ) -reverse -define psd:alpha-unblend=off -define psd:preserve-opacity-mask=true "out2.psd"
で、作ったPSDファイル。
これなんだけど、ノートPCの方のSketchBookではいい感じに意図通りに読めるから「できた!」と思った。…んだが、母艦に移してPaintGraphic2やMedibangPaintで読み込むと全然ダメだ。
Photoshopで読めないならともかく、PaintGraphic2やMedibangPaintではImageMagickに文句を言う訳にも行くまい。
JMagickも何か十数年もメンテされていないようだし、やはり週末にIntel Performance Library 2.5のCDを何とか探し出して自作するしかないか。しかしVC++は完全に忘れてるんだよな…。結構持ってた書籍も引っ越しの時に古本屋に出してしまった。2006年以降使わなかったからまさかその後に使うとは思わないじゃん。

でもVC++よりはまだImageMagickの方に頼りたい…。
ImageMagick逆引きコマンドリファレンス
石井 敦
インプレス
2008-11-28



このエントリーをはてなブックマークに追加 mixiチェック

昔の私なら大したこと無い工数だが、VC++を忘れて久しい私としては、週末に昔のCD-ROM群を漁ってから判断しても遅くないだろう。もしかすると見つかるかもしれないし。
平日は22時まで労働なのでちょっと無理。ボーダーブレイクもシーズン末期だからランクマッチやらねばならぬし。


このエントリーをはてなブックマークに追加 mixiチェック

流石はマイクロソフトだ…15年前の開発ツールが普通に起動する。
ただし、ビルドしようとしたVC++プログラムはIntel Performance Library 2.5依存なので、ipl.hがもはやないこの環境ではコンパイルできなかった…。

Visual Studio パーフェクトガイド
ナルボ
技術評論社
2019-06-21

このエントリーをはてなブックマークに追加 mixiチェック

MedibangPaintでもSketchBookでも駄目だ。
2つのPNGをまとめて複数レイヤーの1つのPSDにしたい。
magick input1.png input2.png output.psd
で何やらPSDは出来るのだけれど、PaintGraphic 2では「2.5互換イメージ」へのチェックが必須。
0131a

チェックして読み込むと目レイヤが無く背景が不透明な0131b
こういう事になる。

面白いのは、SketchBookで同じファイルを読み込むと目パチレイヤだけになる。
0131c

因みにMedibangPaintではひたすら透明…ただし縦横比は合っている。
0131d


いずれも、謎のカラフル縞模様になったりはしないのだ。
つまり各レイヤーのピクセルデータ自体は正しく格納されていて、各ソフトがヘッダーの解釈を誤っていると思われる。なんで透明部分を適当に埋めてしまうのかは分からないが。
remo体験版でヘッダ修正してみたがプレビューを見る限り(購入しないとsaveはできない)PaintGraphicと変わらず。

なお本家Photoshopなら流石に読めるに違いないと考え、ExpressEditionをDLしようとしたら今はWEBアプリになっていて、しかも、PSDは読めないという代物に成り下がっていたのであった。
https://www.adobe.com/jp/photoshop/online/photo-editing.html
昔、プリンタかスキャナのおまけに5のExpressEditionが付いてきてたような気がするんだが、失ってしまった。
さすがにこれだけのためにフルバージョンはちょっと。つかサブスクリプションは好かない。

以前作った空レイヤPSD量産プログラムを改造すればやりたい事はできる筈なんだけど、今からVC++2005をまたインストールするのはなぁ…というかJavaばっかやっててVC++は完全に忘れてるので面倒。RoughAnimatorで線を描いてMedibangPaintで塗りたいだけなのにヤクの毛刈りが過ぎる。

ImageMagickは有名ツールでしかもバージョン7なので、私が使い方を誤っている可能性が高い。もう少しオプションを調査した方が良いだろう。

追加:
不透明度情報が無くなる件は、
https://legacy.imagemagick.org/discourse-server/viewtopic.php?t=19259
のようだ。確かに私も -alpha on を付けたが駄目だった。

レイヤードPSD作った人が。
https://stackoverflow.com/questions/34358292/create-layered-psd-from-png-sequence-with-imagemagick-from-batch-file
オプションが超長い。
→やってみたら目鼻は付いた。
0131f

がレイヤが無い統合画像だ。アルファチャンネルも無視され真っ黒。
真面目にImageMagickの使い方を調べる必要が。



このエントリーをはてなブックマークに追加 mixiチェック

ImageMagickをJavaから使えるようにするライブラリ。
https://github.com/techblue/jmagick 
どうも3年ほどアップデートが滞っているようで、今はImageMagicは7。だが6で対応が止まっている。JMagickは6の中でも結構細かくImageMagickとバージョン合わせないと駄目なので、もう使い物にならんな…。
まぁImageMagickのバッチファイルを出力してそれをキックすれば良いのか。

ImageMagick逆引きコマンドリファレンス
石井 敦
インプレス
2008-11-28

このエントリーをはてなブックマークに追加 mixiチェック

FrashやAfterEffectsやToomBoonにはRoughAnimatorのデータをインポートできると聞き、実はRoughAnimatorのデータ構造は簡単なのかしら?とiPadにも関わらず頑張ってヘンテコなエクスプローラもどきを使って調べたら非常に簡単だった。
「プロジェクト名.ra」というディレクトリがroot
0129a

直下に一つ0000.pngという画像ファイルがありこれが背景。
data.txtの1行目がfps数。他の行は不明。
camera.txtの中身が
cameraWidth:1280
cameraHeight:720
-1:0,0,100,0
で、縦横の長さ。
0001,0002,...の数字のディレクトリが各レイヤー。数字が小さいほど下になる。
各ディレクトリの中は
0129b
画像データとlabel.txt。
画像データの名前は0000.0024.pngや、0001.0003.pngのような形式になっていて、最初の4桁の数字が番号(ディレクトリ内連番。フレーム番号ではない)で、後ろの4桁が表示時間(フレーム数)。
label.txtはRoughAnimatorで表示するレイヤ名。謎の改行が色々入っているが不明。
画像の大きさはどれも同じで、camera.txtに入っている大きさ(もしかするとカメラの大きさと画像は不一致になるケースはあるのかもしれない)

つまり、ディレクトリ構造と各ファイル名が分ればタイムシートは逆算できる。
もうVC++も忘れてしまったしlibpsdもHDDの藻屑と消えてしまったが、ImageMagicなりGhostscriptなりを適切に使えば各フレームをPSDにして書き出す事もおそらく可能だろう。JMagicなら以前使った事がある(処理が大変遅かったが)。
iPadで使い易いRoughAnimatorで線と影指定を描いて、レイヤ演算豊富で塗るのが色々楽なPaintGraphicなりMedibangPaintで塗り、MohoなりVEGASなりに入れる事も出来る筈だ。
Ghostscript Another Manual
江口 庄英
ソフトバンククリエイティブ
1997-09T




このエントリーをはてなブックマークに追加 mixiチェック

ただのsorted()だと、あ,い,う,ア,イ,ウの並びになるが、あ,ア,い,イ,う,ウと読みの順にしたい場合。

https://docs.oracle.com/javase/jp/6/api/java/text/Collator.html
Collator クラスは、ロケールに依存する String の比較を行います。このクラスを使って、自然言語テキストの検索とソートのルーチンを構築します。

以下例
Main.java
Collator cmpl = Collator.getInstance(Locale.JAPANESE); // 日本語を考慮したソート
cmpl.setDecomposition(Collator.FULL_DECOMPOSITION); //半分幅と完全幅の ASCII 文字とカタカナ文字を一緒に照合
cmpl.setStrength(Collator.IDENTICAL); // 大文字小文字アクセント記号等々を全部別文字と見なす
List<Janl> sortedjanls = janls.stream().sorted( Comparator.comparing(Janl::getName, cmpl) ).collect(Collectors.toList());

Janl.java
(略)
public String getName() {
return name;
}
(略)

改訂3版Javaポケットリファレンス
WINGSプロジェクト 髙江賢
技術評論社
2020-08-27


このエントリーをはてなブックマークに追加 mixiチェック

↑このページのトップヘ