[WinForms] Просмотрщик картинок
От: sazar  
Дата: 04.03.10 09:03
Оценка:
Добрый день!
Нужно написать просмотрщик картинок. Проблема в том, что не знаю как лучше реализовать.

Изначально делал так — хранил в памяти оригинальный Image, параметры скроллов и текущий масштаб.
Из оригинального изображения вырезается нужный кусок (с у четом масштаба и скроллов) и засовывается в PictureBox. При ресайзе или скроллировании обновляю PictureBox путем определения новой области и вставки соответствующего фрагмента. Однако такая схема не очень работает при больших изображениях и большом увеличении — скроллирование подтормаживает.

Собственно само обновление PictureBox происходит так:

// Создаем новое изображение и получаем его графику
Image displImage = (Image)new Bitmap(pictureBoxMain.Width, pictureBoxMain.Height);
Graphics gr = Graphics.FromImage(displImage);

// Засовываем в это изображение фрагмент исходного
gr.DrawImage(currentImage,
        new Rectangle(insertX, insertY, insertWidth, insertHeight),
        new Rectangle(cropX, cropY, cropWidth, cropHeight),
        GraphicsUnit.Pixel);

// Удаляем графику
gr.Dispose();

// Засовываем в элемент формы сформированное изображение
pictureBoxMain.Image = displImage;


Подскажите или дайте ссылку где посмотреть более умную реализацию таких вещей.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.