画像ファイルのイメージ・カラーの自動選定

画像ファイルを読み込んで、自動でイメージ・カラーを決定する、
プログラムを作成しました。(perl,ImageMagick)
(パラメータ調整中です。。 Linux用)
http://sozai.picolix.jp で自動作成しているチェック模様がすでに1万枚
にものぼりこれを自動で色分けしたいとずっと思っていたのですが、
今回、雛形ができましたので、もう少しで自動分類できるかと思います。
赤,黄赤,黄,黄緑,緑,青緑,青,青紫,紫,赤紫の10系に分ける予定です。


分け方のヒントは、ロミテチオさんの「画像の色相でソート」と、
参考文献:諸原雄大、近藤邦雄、島田静雄、佐藤尚、「テキスタイルデザイン画像におけるイメージ・カラーの選定法」情報論,Vol36,No.2,1995です。
以下の自動計算結果は、イメージ・カラーのトップ3の
#RGB:色相角度-計算結果L
(Lの最大ものが、イメージ・カラーとなります。)
Image color=’色’
p.jpg
#4b58a8:231-0.6897
#3c36c9:242-0.4747
#5c7c88:196-0.3127
Image color=青紫
p2.jpg
#c72b38:355-0.5803
#d42437:353-0.4904
#df4364:347-0.4653
Image color=赤
p3.jpg
#35660e:93-0.6492
#0b370a:118-0.473
#2e630f:97-0.6058
Image color=黄緑
以下の画像は、何色に分類すればいいでしょうか?
ん~。感覚的には、オレンジ?
p4.jpg
#594b21:45-0.8024
#0b5a2a:143-0.5076
#a93c18:14-0.6923
Image color=黄
このあたりは、ちょっとパラメータを調整する必要がありそう。

CrenaHtml2jpg v1.11リリースしました。

CrenaHtml2jpg v1.11リリースしました。
縮小・拡大に、.補間方法を指定できるようにしました。
このソフトは、C++で作っているのですが、C#,.NETなどのGDI+関連のサンプル
コードを参考に、C++に置き換えているのですが、C++での該当関数が分からず、とりあえずGdiPlus**.hのヘッダーを見ながら適当に見繕って(笑う)作ってます。
やっぱり、.NETに移行しないといけないのかな?

CrenaHtml2jpg UPDATE情報

CrenaHtml2jpg-v1.08にUPDATEしました。
自動フルキャプチャー時、縮小倍率が整数でないとき縦横比率がおかしいバグ修正。
=>c,c++,perl,php,sqlなど多言語でソフトを組んでいると
ふと気がつくと、各言語のいいとこどりの記述方法になってしまうことがたまにあります。今回のバグは、
割り算で、小数を全然、意識しておらず結果、小数点切捨てとなり比率がおかしくなっていました。
ちょっと情けないバグでした。。
https://www.picolix.jp/

CrenaHtml2jpg UPDATE情報

CrenaHtml2jpg-v1.07にUPDATEしました。
https://www.picolix.jp/主な改良点は、画像種類がBMPの時、色深度24ビットを選択できるようにしました。
今までは、デフォルトで色深度32ビットだったんですが、これだと読み込みできない画像ツールがあるようです。(BBSで教えて頂きました。)
かくいう私の愛用ツールPaint Shop Pro 3.2でも色深度32ビットだと開けませんでした。
32ビットから24ビットの変換は簡単でこちらの「BMP ファイルフォーマット」サイトを参考にさせて頂きました。
BMPってBMP・辞書


また、現在、geckoエンジン(firefoxとかが使っている)に対応させてレンダーエンジンを切り替えて使えるように思案中ですが、難しいです。(T_T)
一番初期バージョンだと、2行書き換えてライブラリを組み込むと動作したのですが、
現在のバージョンだといろいろ不都合なところがあり、断念しております。。

USB-シリアル変換ドライバー ser2pl.sys

事情により、USB-シリアル変換で、RS232Cのデータを受信するアプリを
VC++で作成しているのですが、どうもドライバー ser2pl.sysが軟弱で、
USBハブに2本差して連続稼動(2時間~48時間)でドライバーがハングします。
RS232Cは、同期、非同期の両方のプログラムで試しましたが、だめでした。
(USBではなく、RS232ポートなら、同一プログラムで問題なく動作する。)
症状は、データの受信ができない、受信イベントが発生しない。このような
状態になると、PCを再起動するか、USBを抜き差ししてアプリを再起動させないと
復旧しない。
バージョン1.x系と2.x系では、不具合現象が違います。1.x系では、ドライバーからエラーも
なく受信も突然できなくなる。
2.x系では、デバイスエラーが取得できるが、COMポートをクローズ&再オープンしても
復旧できず。お手上げ状態です。
USBってUSB・辞書


試したドライバーバージョンは、以下のとおり。
1.3.0.1 ×
1.5.0.0 ×
1.5.0.3 ×
2.0.0.25 ×
2.0.0.26 ×
2.0.2.0 ×
2.0.2.1 現在エイジングテスト中です。。。。
PL-2303 USB to Serial Bridge Controller

CrenaHtml2jpg 情報

1.CrenaHtml2jpgを使うには、GDIライブラリーで、gdiplus.dllが必要です。(XPだとデフォルトで
入っています。)
http://dip.picolix.jp/page3.htmlで、配布している、gdiplus.dllはバージョンが古く、脆弱性があるようです。=>最新をアップしました。
[ソフトウェア] CrenaHtml2jpg 1.05 [ののりん’s Diary さんのご指摘より]
マイクロソフトのPlatform SDK Redistributable: GDIから再配布のGDIPLUS.DLL(5.1.3102.1360)からもダウンロードできます。
2.ご使用サイト
 @心のままに@ リンク集(β)
 [@心のままに@]
3.ソフト収録状況
 ・窓の杜の8月版(8/9~)に収録して頂けるようです。
 ・Web Designing 9月号(8/18)で製品レビュー予定です。


皆さん、ありがとうございます。

リモートデスクトップ接続

ここ最近、Windowsのサービスプログラム、クライアントプログラムを久々に開発しているのですが、開発サーバはVmware上のWindows2003で、PCから、リモートデスクトップ接続して、サービスの起動、デバッグモニターなどを起動させてテストしています。
このリモートデスクトップ接続からの起動が曲者で、起動プログラムの動作が不安定でおかしい、スレッドが途中で止まるし、特に、シェアードメモリーを割り当てて、オールマイティーのセキュリティー権限を与えても、 通常のプロセスからシェアードメモリーにアクセスできない。デバッグプリントが、出力されないなどの現象が発生。
リモートデスクトップ接続からの起動が怪しいと確信するまで、丸1日費やしてしまった。
Vmware上のコンソールから起動すると、何事もなく正常に動作した。
VNCも使ってますが、こちらの方がいいかも。


もう、プログラミングを前面に立ってする歳でもないのですが(といってもフリーソフトは書いていますが。)、web,db系は、若手連中にまかせれば大丈夫なのですが、
VC系でサービスプログラム、DLL、ドライバー系を書ける人間がいないので、しょうがなく書いています。
しかし、Windowsのサービスプログラム、スレッド系プログラムは、面倒ですね、linuxならすぐ書けるところなのに。

Windowsで4Gのtarファイルの解凍

4Gバイトのtarファイルをwindowsで解凍する必要があったのですが、LHMelt,LhaPlus,ZELDA,LHUT32,+Lhacaその他いろいろ試してどれも解凍できませんでした。
いずれも、0バイトファイルになるか、2Gで打ち止めになるかどちらかです。
いずれのソフトもtar32.lib,tar32.dllを使っているみたいなので、日本製のものは、どれもだめみたい。
(tra32は、4Gに対応しているのかもしれないが、それを組み込んでいるソフトがアドレス対応していないのかな?。解凍できるソフトが、あれば教えて頂きたいです。)
もしや、cygwinのtarコマンドなら解凍できるかと思い、
cygwinをインストールして、試してみたところ、解凍できました。(^.^)

[8]サイト サムネイル画像Crena Html2jpg v1.04

画面キャプチャーサイズは従来、最大デスクトップ画面でしたが、デスクトップ画面よりも大きいサイズでも画面キャプチャーできるようにしました。(結構難しかったです。。)
picture1.jpg800 x 600 =&gt 117 x 90で取得

picture1.jpg800 x 1200 =&gt 117 x 180で取得
https://www.picolix.jp/
ダウンロード


これで、フルスクリーンでのキャプチャーの目処が立ちました。従来は、どうしても最大デスクトップ画面のサイズの壁が超えられず、試行錯誤していたのですがやっとできました。
–修正メモ:ヒント–
pElement->QueryInterface(IID_IHTMLElementRender, (void **) &pElementRender);
pElemnetRender->DrawToDC(destDC);
から
pDoc->QueryInterface(IID_IViewObject, (void**)&viewobj);
OleDraw(viewobj, DVASPECT_CONTENT, destDC, rect);
に変更
7/15
CrenaHtml2jpg9.jpg