teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2019/07/29 02:53

投稿

takabosoft
takabosoft

スコア8356

answer CHANGED
@@ -2,10 +2,11 @@
2
2
  自力での拡張が難しいようであれば
3
3
  画像をbyte[]などに変換したものをプロパティに持たせてシリアライズ・デシリアライズさせてみてはいかがでしょう?
4
4
 
5
- ※byte[]型がサポートされていれば、という条件付きですが。
5
+ ※byte[]型がサポートされていれば、という前提条件付きですが。
6
6
 
7
7
  たとえばBitmapSourceとPNGのバイナリの相互変換は以下のサイトが参考になると思います。
8
8
  [【WPF】 PNG ⇔ BitmapSourceの変換](http://ni4muraano.hatenablog.com/entry/2018/01/29/080000)
9
+ (FileStreamではなくMemoryStreamを使えばbyte[]とやりとりできると思います)
9
10
 
10
11
  また、BitmapSourceのフォーマット(32bitArgbとか)が固定なのでしたら、PNGとかに変換せずにメモリ内の画素をそのままbyte[]で取り出して、あとはMessagePack側の圧縮機能に丸投げ、というのも有りなのかなと思いました。
11
12
 

2

追記

2019/07/29 02:53

投稿

takabosoft
takabosoft

スコア8356

answer CHANGED
@@ -1,3 +1,12 @@
1
1
  MessagePack for C#は使ったことがありませんが、
2
2
  自力での拡張が難しいようであれば
3
- 画像をbyte[]などに変換したものをプロパティに持たせてシリアライズ・デシリアライズさせてみてはいかがでしょう?
3
+ 画像をbyte[]などに変換したものをプロパティに持たせてシリアライズ・デシリアライズさせてみてはいかがでしょう?
4
+
5
+ ※byte[]型がサポートされていれば、という条件付きですが。
6
+
7
+ たとえばBitmapSourceとPNGのバイナリの相互変換は以下のサイトが参考になると思います。
8
+ [【WPF】 PNG ⇔ BitmapSourceの変換](http://ni4muraano.hatenablog.com/entry/2018/01/29/080000)
9
+
10
+ また、BitmapSourceのフォーマット(32bitArgbとか)が固定なのでしたら、PNGとかに変換せずにメモリ内の画素をそのままbyte[]で取り出して、あとはMessagePack側の圧縮機能に丸投げ、というのも有りなのかなと思いました。
11
+
12
+ いろいろやってみてください。

1

改善

2019/07/29 02:50

投稿

takabosoft
takabosoft

スコア8356

answer CHANGED
@@ -1,3 +1,3 @@
1
1
  MessagePack for C#は使ったことがありませんが、
2
2
  自力での拡張が難しいようであれば
3
- 画像をbyte[]などに変換したものをシリアライズ・デシリアライズさせてみてはいかがでしょう?
3
+ 画像をbyte[]などに変換したものをプロパティに持たせてシリアライズ・デシリアライズさせてみてはいかがでしょう?