PhotoSlider-写真の妨害を解析するためのGPLユーティリティ

PhotoSliderの目標


時々「写真パック/セッション/レポート」がすり抜けるいくつかの写真ブログを読みました。 さらに、友人は写真をギガバイト単位で持ち運びます。 かなり多くの種類の写真が収集されるとすぐに(それぞれ10〜20枚)、選択した0.001%の写真を自分の壁紙に残してそれらを調べます。

カメラは誰にとっても良くなっており、写真の重さはますます増えており、ロードの速度に影響を与えることはできません。 すべてを効果的にレーキする方法に問題がありました。 ほとんどすべての写真は単一のビューの後に削除され、少数のお気に入りがwallpaper'ovのフォルダーに移動されます。

最初はPicasaまたはFSViewerのいずれかを使用しました。 しかし、何らかの理由で、両方とも幸せではありませんでした。



少し苦労した後、私は独自のユーティリティを書き始め、それがPhotoSliderになりました。

カットの下で、実装と管理の詳細。



使い方


インストーラーはなく、コンソールから起動されます。 2つのパラメーターのみを理解します。



(サブフォルダーを使用して)現在のフォルダーを再帰的にスキャンし、常に全画面に展開します。 画面に複数の写真を表示できる場合(たとえば、2つのパノラマが互いに干渉することなく画面に垂直に収まる場合)、複数の写真が表示されます。

以下の管理(少なくとも私にとっては、不要として設定されていない)。



技術的に実装されている方法


写真は別のストリームにアップロードされます。 画面に表示されるときに時間のスケーリングを無駄にしないために、すべての写真は、同じ(選択された)ストリームの画面解像度に合わせてスケーリングされます(比率は保持されます)。

別のストリームは、次の画面の写真の組み合わせを扱います。 コマンドを受信すると、結合された画面から新しい写真が最初に表示され(ユーザーに表示される遅延を最小限に抑えます)、古い写真がリリース/削除/移動されます。

すべてのメモリがいっぱいにならないように、キューにぶら下がっている写真の数に制限があります(現在、これは抽象的な制限です:すべての写真の合計(幅*高さ* 4)<1024 * 1024 * 1024。もっと面白いことがあります)。

(上記の目的のために)他の視聴者よりもずっと活発に動作しているように感じますが、より高速になると予想されます。 どこかにボトルネックがあるようですが、プロファイラーがないため、まだプロファイリングされていません。

気づいたがキャッチされていない欠陥から:



最後の数回のコミットでは、すべての機能をチェックしませんでした。おそらくどこかで何かが出てくるでしょう。

これはすべて.NET 3.5のC#で記述されています。 断片的に書かれていることが多く、急いで、アプリケーションのアーキテクチャは非常に乱雑です。 どういうわけか一緒になって、コードを通常の可読性に戻したいと思います。 ほとんどの場合、同じ理由でコメントはありません(+最初は「アプリケーションを1回または2回使用する」ためにさらに開発する予定はありませんでした)。 Windowsでのみテスト済み。 まだMonoで何も書いていませんが、コンパイルできるかどうかわかりません。 私はubuntuに切り替えることにますます惹かれていますが、将来的にはモノラルでリメイクするでしょう。

GPL3でGoogle Codeにアップロードされたソース。

このユーティリティが私以外の誰かに役立つことを願っています。



All Articles