午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

Pixtack紫陽花2nd、編集状態をファイルに保存できるようにした

前回は2週間前
Pixtack紫陽花2nd 1.1.2.4
 
 
2016/04/30
編集状態を名前を付けて保存できるようにした
 
2016/04/28
透明にしたい色をパレットから選択したとき透明にならないのを修正
スライダーと画像の回転角度などの変形の連携の方法を
ValueChangedイベント方式からBindingとDataContextを使った方法に変更した
 
2016/04/17
jpeg保存の時の品質(画質)を指定できるようにした
上下カーソルキーで画像移動すると階層も移動してしまう不具合修正
スライダーやメニュー項目などをカーソルキーで操作できなかった不具合修正…できたと思ったけど直っていなかった
 

f:id:gogowaten:20191025133904p:plain

 
編集状態をファイルに保存

f:id:gogowaten:20191025134457p:plain

さっきの説明画像とバジルと霧吹きの画像の3つ表示したところ
 

f:id:gogowaten:20191025134511p:plain

画像の位置を変更して回転とかした状態
この状態を保存する
 

f:id:gogowaten:20191025134523p:plain

適当な名前を付けて保存
 
イメージ 5
表示していた画像を消去してから
 
イメージ 6
さっき保存したファイルを開いてみる
 
イメージ 7

f:id:gogowaten:20191025134541p:plain

編集状態が再現された!
 
編集状態が保存されたファイル
イメージ 9
拡張子は独自の.pa2にしてみたけどファイルの形式はZipファイルになっているので、拡張子を.zipに変更すると中を見ることができる
確かエクセルのxlmsファイルも実はZipだったはず、今ではエクセルの気持ちが少しわかる気がするw
 
 

f:id:gogowaten:20191025134554p:plain

拡張子をZipに変更して中を見たところ
Bitmap.tiffに画像が保存されている、Tiff画像形式には1つのファイルに何枚も画像を入れることができるのを利用している、今回のは3枚入っている
data.xmlにはそれぞれの画像の情報が入っている、表示位置、回転角度、拡大率、傾斜角度がそれ
 
イメージ 11
解凍してみたところ、画像が見えている
 
 
イメージ 12
data.xmlテキストエディタMeryで開いたところ
Bitmap.tiffWindows フォトビューワーで開いてみると
イメージ 13
イメージ 14
イメージ 15
3枚の画像が入っているのが確認できる
Windows フォトビューワーってあんまり使うこと無くて知らなかったけど意外に便利だねえ
ちなみにPixtack紫陽花2ndや無印で複数画像が入っているTiff画像を開いても1枚目の画像しか表示されない
 

説明画像で使ったフォントは「にゃしぃフォント改二」
よく飛ばない鳥
http://marusexijaxs.web.fc2.com/
参照したところは

dobon.net

dobon.net

 
 
OnSerializedAttribute クラス (System.Runtime.Serialization)
https://msdn.microsoft.com/ja-jp/library/system.runtime.serialization.onserializedattribute(v=vs.110).aspx
DataContractSerializerのデシリアライズで既定値を設定する « 空談録
http://artfulplace.net/blogs/set-default-value-to-datacontract-serialized-object/
ありがとうございます

 
 
今回のでやっと編集状態を保存する機能をつけることができた
前回までのテストアプリでも結構難しかったので、本番ではどこまでできるかなあって感じだったけど、なんとかできて満足、無印の時はできなかったからねえ
どうなるかわからないのが保存ファイルの互換性、今後のバージョンアップで保存する項目が増えたり変更になった時にどうなるのか、たぶん互換性はなくなるかなあ
 
イメージ 16
 
ダウンロード先
 
ヤフーボックス
 
 
 
関連記事
WPFVB.NET、Bindingしたままコントロールを直接変形、TransformGroupの中のRotateTransform ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/14098125.html
WPFVB.NET、アプリでの編集状態保存、名前を付けて保存、回転角度を指定する2つの方法 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/14093723.html