Я хочу использовать дорожку для изменения размера изображения, которое рисуется в событии .._Paint
.Изменение размера изображения в центре
До сих пор я загрузил изображение из файла в растровое изображение под названием original
. Теперь у меня есть другой битмап, называемый «обрезанный», который хранит часть исходного изображения.
Bitmap original = new Bitmap(spriteSheet);
RectangleF srcRect = new RectangleF(ip.x, ip.y, ip.width, ip.height);
Bitmap cropped = original.Clone(srcRect, original.PixelFormat);
У меня есть PictureBox под названием pb_preview
который рисует обрезанное изображение так:
e.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;
e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
RectangleF rc = new RectangleF(pb_preview.Height/2, pb_preview.Width/2, zoomSlider.Value * cropped.Width, zoomSlider.Value * cropped.Height);
e.Graphics.DrawImage(cropped, rc);
В моем trackbars события изменения значения, я аннулированию pb_preview
так каждый раз, когда я изменить значение, то pb_preview
будет рисовать изображение при большем значении.
Проблема в том, что каждый раз, когда я изменяю значение трекбара, изображение не изменяется в центре по центру, вместо этого оно изменяется, но каждый раз, когда оно изменяется, оно немного идет влево, пока изображение с максимальным размером не будет разорвано.
вы можете разместить код где вы аннулируете «PictureBox»? –
@ VishnuPrasad Я объявляю недействительным событие Trackbar Scroll и сразу после создания обрезанного растрового изображения под ним. – Zer0
Вы создаете обрезанное растровое изображение каждый раз? если это так, изменилось ли значение члена элемента 'ip' в это время? , Похоже, что размер вашего обрезанного изображения непропорционально масштабируется с размером окна «pb_preview». –