/// <summary> /// Инициализация для загрузки существующего изображения /// </summary> public void Initialize(string pathToFile) { if (pathToFile != null) { BitmapImage bitmapImage = new BitmapImage(new Uri(pathToFile)); bitmapImage.CreateOptions = BitmapCreateOptions.None; var tempBitmap = new WriteableBitmap(bitmapImage); WriteableBitmap resultBitmap = new WriteableBitmap(tempBitmap.PixelWidth + 600, tempBitmap.PixelHeight + 600, 96, 96, PixelFormats.Bgra32, null); byte[] temp = new byte[4 * tempBitmap.PixelWidth * tempBitmap.PixelHeight]; tempBitmap.CopyPixels(new Int32Rect(0, 0, tempBitmap.PixelWidth, tempBitmap.PixelHeight), temp, 4 * tempBitmap.PixelWidth, 0); resultBitmap.WritePixels(new Int32Rect(300, 300, tempBitmap.PixelWidth, tempBitmap.PixelHeight), temp, 4 * tempBitmap.PixelWidth, 0); Bitmap = resultBitmap; ChangesHolder = new ImageChangesHolder(Bitmap, StackCapacity); OnImageChanged(); } else { throw new Exception("Путь к файлу равняется null"); } }
/// <summary> /// Инициализация для создания пустой картинки с выбранными высотой и шириной /// </summary> public void Initialize(int height, int width) { if (height > 1 && width > 1) { Bitmap = new WriteableBitmap(width + 600, height + 600, 96, 96, System.Windows.Media.PixelFormats.Bgra32, null); ChangesHolder = new ImageChangesHolder(Bitmap, StackCapacity); OnImageChanged(); } else { throw new Exception("Высота и/или ширина не может быть меньше 1"); } }