private void SetZoom(Point pixelOffset, double zoomFactorOffset, Point pixelZoomPoint) { FileSystemImage fileImage = viewModel.CurrentImage; BitmapSource img = fileImage?.Image; if (img == null) { return; } Rect rect = fileImage.CropRect ?? new Rect(0, 0, img.PixelWidth, img.PixelHeight); double zoomFactor = Math.Max(img.PixelWidth / rect.Width, img.PixelHeight / rect.Height); if (zoomFactor * zoomFactorOffset > maxZoomFactor) { return; } pixelOffset.X /= imgCurrent.ActualWidth; pixelOffset.Y /= imgCurrent.ActualHeight; pixelZoomPoint.X = rect.X + pixelZoomPoint.X / imgCurrent.ActualWidth * rect.Width; pixelZoomPoint.Y = rect.Y + pixelZoomPoint.Y / imgCurrent.ActualHeight * rect.Height; fileImage.CropRect = Zoom(gidImage.ActualWidth / gidImage.ActualHeight, rect, pixelOffset, zoomFactorOffset, pixelZoomPoint); }
private static void CopyToClipboard(FileSystemImage image) { try { if (image?.Image != null) { Clipboard.SetImage(image.Image); } } catch (Exception e) { MessageBox.Show(e.Message, "Copy file drop error", MessageBoxButton.OK, MessageBoxImage.Error); } try { if (image?.File == null) { return; } StringCollection dropList = new StringCollection { image.File.FullName }; Clipboard.SetFileDropList(dropList); } catch (Exception e) { MessageBox.Show(e.Message, "Copy file drop error", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void BtnInfo_Click(object sender, RoutedEventArgs e) { FileSystemImage img = viewModel.CurrentImage; BitmapSource crop = (BitmapSource)img?.CroppedImage; string text = $"Image: {img?.Image?.PixelWidth} x {img?.Image?.PixelHeight}\r\n" + $"Crop: {crop?.PixelWidth ?? -1} x {crop?.PixelHeight ?? -1}\r\n" + $"Size: {StdUtils.GetFormattedFileSize(img?.File.Length ?? -1)}"; MessageBox.Show(text); }