我有一個圖片框內的面板爲了放大和平移。我創建了通過鼠標單擊選擇4個點並在PictureBox上繪製矩形的可能性。一旦矩形結束了我的圖片,我將矩形的座標傳遞給「cropRectangle」方法。此方法裁剪矩形並用裁剪的圖像替換舊圖像。 這個作品非常好:如何放大面板內圖片框的繪製矩形?
(OriginalImage是實際圖像的圖片框位圖)
private void cropRectangle(Rectangle rect){
double left = (rect.X) * originalImage.Width/pictureBox.Width,
top = (rect.Y) * originalImage.Width/pictureBox.Height,
right = (rect.Width) * originalImage.Width/pictureBox.Width,
bottom = (rect.Height) * originalImage.Height/pictureBox.Height;
rect = new Rectangle (Convert.ToInt32(left), Convert.ToInt32(top), Convert.ToInt32(right), Convert.ToInt32(bottom));
Bitmap bitmap = orignalImage.Clone(rect, originalImage.PixelFormat);
pictureBox.Image = (Image)bitmap;
centerPictureBox();
// fit image into pictureBox with respect to the ratio
float ratio = orignalImage.Width/orignalImage.Height;
pictureBox.Width = panel.Width;
pictureBox.Height = Convert.ToInt32(pictureBox.Width * ratio);
centerPictureBox();
}
什麼我想現在要做的是放大所選擇的區域,而不是對裁剪。圖框的矩形必須與面板匹配。
如何通過面板僅顯示圖片框的選定區域(矩形)而不裁剪圖像?
我無法管理它的工作。 – dll
@dll我記得在Codeproject.com上看到了這種功能的不少實例。你可以搜索「picturebox zoom windows forms」這樣的東西。 – hankide
謝謝,但我只是找到了我的問題的解決方案。 – dll