ここから本文です
ベランダ菜園とWindows用アプリ作成とExcel用アプリ(アドイン)作成

書庫┗Pixtrim

画像ファイルを一度にトリミングして保存するソフトウェア製作日記
切り取り範囲のわかりやすさ
切り取り範囲を指定のピクセルごとに移動
クリップボードからの画像取り込み
フリーソフトウェア
ソースらしきものも公開
記事検索
検索

全5ページ

[1] [2] [3] [4] [5]

[ 次のページ ]

前回の変更で別の不具合が出ていたのを直した
イメージ 1
クリップボードから取り込んだ画像を保存した後に
リストにある画像を選択するとエラーになっていた
消しちゃいけないものまでDisposeでメモリから削除していて
これを直したからメモリ使用量は増えるはず
なんだけどちょっとテストした限りではあんまり増えた感じしない

クリップボードから取り込んだ画像は名前を付けてImgCollectionっていうCollectionにまとめておいて、画像保存するときにそこから1枚づつ取り出している
この取り出し方が良くなかった
Dim obj = ImgCollection(myFormSetting.ListBox1.Items(i))
Dim img As Image = obj
こう(意味不明な処理)だったのを

Dim img As New Bitmap(DirectCast(ImgCollection(myFormSetting.ListBox1.Items(i)), Image))
こうした、あんまりわかっていないけどこれでエラーが出なくなって選択した画像が表示されるようになった

保存処理が終わったらimgをDispose()している
リストから選択された画像表示するときはCollectionから取り出している
前回はCollectionの中の画像まで消えていたから、その消えた画像を表示しようとしてエラーになっていた
今回はNewでBitmapを作成して、そこにCollectionの画像をコピペしたからDisposeで消えるのはコピペした画像だけどコピペ元のCollectionの中の画像は消えないってことかなあ

でも直ったと思う()


ダウンロード
ヤフーボックス

OneDrive
ファイル名
Pixtrim1.8.27.0.zip(32ビットWindows用)
Pixtrim1.8.27.0_x64.zip(64ビットWindows用)
今度こそ保存実行時のメモリ使用量を減らすことができた…はず

イメージ 1
ゲーム中のスクリーンショット画像
(MHF-Gことモンスターハンター フロンティア Gより)
をAlt+PrintScreenでクリップボードに入れて
その画像をクリップボードからPixtrimに109枚取り込んだところ
この時点でのPixtrimのメモリ使用量は78MB
感覚的にはかなり少ない感じ、500MBくらい使っていてもいい気がする(適当)
取り込んだ画像の大きさは1026x624ピクセル
切り取りの設定は
  • 位置がx,y=(1,23)
  • 大きさが1024x600
これでファイルとして保存(保存実行)する時のメモリ使用量が
前回だと処理が進むに連れてどんどん増えていって
500MBとか設定によっては1GBを超えていたのが
今回は200MB以下で130MBから30MBくらいを行ったり来たりするまでになった

イメージ 2
保存実行中のスクリーンショット、この時は94MB

イメージ 3
これも保存途中のスクリーンショットで38MB

イメージ 4
保存完了直後には12MB
少ないのはいいけど少なすぎて逆に不安になるw
けど切り取りだけなら普通に使えている

画像の読み込みには画像ファイルからとクリップボードからを区別している
前回は画像ファイルからの処理だけ直して、テストも画像ファイルだけで済ませていたから直ったと勘違いしていた
プログラムの書き方が良くないのが原因だけど1年前の自分だから仕方ないね
でもめんどくさいから書き直しはしない、実際期待通りに動いているからね

2015年9月5日追記
クリップボードから取り込んだ画像を保存実行や自動保存した後に、リストにある画像を選択するとエラーで止まってしまう…
必要な物までDisposeしてメモリから削除していた模様
追記ここまで


Pixtrimダウンロード
ファイル名
Pixtrim1.8.26.0.zip (32ビットWindows用)
Pixtrim1.8.26.0_x64.zip (64ビットWindows用)

OneDrive
ヤフーボックス


大きな画像(1000x1000とか)を大量(数百枚以上)に保存実行するときの不具合を解消したつもり
保存実行時に10枚処理するごとにメモリの開放をするようにした
保存実行時に応答なしになっても描画更新して保存の実行状況がわかるようにした

イメージ 1
大きな画像を大量に大きな切り取り範囲指定して保存実行すると
Pixtrimのメモリ使用量が1GBを超えていた
今までの実用では大きな切り取り範囲で処理することはなかったので気付かなかった
メモリの開放はVB.NETにお任せのDispose()は使っていたんだけど間に合わなかったみたいなので
System.GC.Collect()でメモリ解放を指示してから
System.GC.WaitForPendingFinalizers()でメモリ解放されるまで待機
っていう2行を追加した
とくにWaitForPendingFinalizers()、これを実行しないとメモリ解放しないで
次に処理に行ってしまってCollect()の意味が無い状態になっていた
どっちも便利なんだけどよくわからん


2015/09/02追記ここから
メモリ使用量減ってなかった…
テストの時は期待通りに動いていたんだけど、実際に使ってみたら違う動き
追記ここまで


参照したところ
Re[13]: 『「GC.Collect」メソッド』について
ここ見ると上の2行の後にもう一回System.GC.Collect()ってなっているけど
別に無くても動いているから書かなかった


処理中の再描画
これも大量の画像を処理するときに時間がかかって3秒位すると
アプリが応答なしの状態になって処理状況を表すプログレスバーも止まってしまう
これではプログレスバーの意味が無いってことで

参照したところ
全ては時の中に… : 【VB.NET】画面を再描画(更新)する
ここを見て
Me.Refresh()
自分自身(アプリ)を再描画する1行を追加した
これも10枚処理するごとに実行


ダウンロード
ファイル名
Pixtrim1.8.25.0.zip(32ビットWindows用)
Pixtrim1.8.25.0_x64.zip(64ビットWindows用)

ダウンロード先1

ダウンロード先2(ヤフーボックス)

Pixtrimは約1年ぶりの更新になった

開くトラックバック(1)

最小化状態で終了すると次回起動時にウィンドウが表示されなくなる不具合修正

イメージ 1
ウィンドウを最小化した状態でタスクバーを右クリックして
ウィンドウを閉じるでアプリを終了してしまうと
二度とウィンドウが表示されなくなってしまう致命的な不具合の修正

アプリの終了時にウィンドウの位置を記録して次回起動時に反映するように
しているんだけどウィンドウが最小化されていると
ウィンドウの位置をx,yともに-32000と認識しまうので
ウィンドウがノーマル表示の時だけ記録するようにして
起動時にもチェックを入れるようにして
もし座標が-10000以下なら0にするようにした


ファイル名
64bitWindows用 Pixtrim1.8.23.0_x64_release.zip
32bitWindows用 Pixtrim1.8.23.0.zip

ダウンロード先

ヤフーボックス

開くトラックバック(1)

クリップボードからの取り込み画像の名前を変更してリストに混在していた時に
保存実行しても画像が保存されていなかったのを修正
同じ条件で右クリックから切り取り範囲を保存も無視されていたのを修正

保存フォルダを開くボタンを追加した


イメージ 1
クリップボードからの画像の取り込みをする時
途中でファイル名を変更して変更前のものがリストにある時に
保存できていなかったのを修正


保存フォルダを開く
イメージ 2
保存フォルダを開くだけのボタンを追加した

参照した所
指定したフォルダをエクスプローラで開く: .NET Tips: C#, VB.NET

ダウンロード先1

ダウンロード先2
ヤフーボックス
ファイル名
64bitWindows用 Pixtrim1.8.22.0_x64_release.zip
32bitWindows用 Pixtrim1.8.22.0.zip

重たいページ↓
Pixtrimの基本的な使い方、アニメーションGIF(動画)で説明してみた - 午後わてんのブログ - Yahoo!ブログ



全5ページ

[1] [2] [3] [4] [5]

[ 次のページ ]

わてん@午後
わてん@午後
男性 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について

スマートフォンで見る

モバイル版Yahoo!ブログにアクセス!

スマートフォン版Yahoo!ブログにアクセス!

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

最新のコメント最新のコメント

すべて表示

Yahoo!からのお知らせ

検索 検索

よしもとブログランキング

もっと見る
本文はここまでですこのページの先頭へ

[PR]お得情報

ふるさと納税サイト『さとふる』
お米、お肉などの好きなお礼品を選べる
毎日人気ランキング更新中!
数量限定!イオンおまとめ企画
「無料お試しクーポン」か
「値引きクーポン」が必ず当たる!
ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
11/30までキャンペーン実施中!

その他のキャンペーン

みんなの更新記事