コード例 #1
0
        private void OpenCompressed(object sender, RoutedEventArgs e)
        {
            var openDialog = new OpenFileDialog
            {
                Multiselect = false,
                Filter      = "压缩位图文件(*.cbmp)|*.cbmp"
            };
            var result = openDialog.ShowDialog();

            if (result != null && result.Value)
            {
                var huffmanFile = new HuffmanFile(openDialog.FileName + "_key");
                var imageBytes  = huffmanFile.ReadEncodedFile(openDialog.FileName);
                var imageStream = new MemoryStream(imageBytes);
                ViewModel.Image      = new RadBitmap(imageStream);
                ViewModel.Properties = new ImageProperties(ViewModel.Image.Bitmap, openDialog.OpenFile());
                ExifTree.Items.Clear();
                foreach (var key in ViewModel.Properties.ExifInfos.Keys)
                {
                    ExifTree.Items.Add(new RadTreeViewItem()
                    {
                        Header = $"{key} - {ViewModel.Properties.ExifInfos[key]}"
                    });
                }
            }
        }
コード例 #2
0
        private void SaveCompressed(object sender, RoutedEventArgs e)
        {
            var saveDialog = new SaveFileDialog()
            {
                CheckPathExists = true,
                Filter          = "压缩位图文件(*.cbmp)|*.cbmp"
            };
            var result = saveDialog.ShowDialog();

            if (result != null && result.Value)
            {
                var encoder    = new BmpBitmapEncoder();
                var destStream = new MemoryStream();
                encoder.Frames.Add(BitmapFrame.Create(ViewModel.ImageSource));
                encoder.Save(destStream);
                var imageBytes  = destStream.ToArray();
                var huffmanFile = new HuffmanFile(imageBytes);
                huffmanFile.EncodeFile(saveDialog.FileName, saveDialog.FileName + "_key");
            }
        }