コード例 #1
0
        /// <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");
            }
        }
コード例 #2
0
 /// <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");
     }
 }