2012-03-08 5 views
11

Tôi đang cố gắng viết một lớp tiện ích cho phép thay đổi kích thước tự động các hình ảnh là tilebale. Hãy nói rằng có một srcBitmap từ nơi tôi sao chép một khu vực được đưa ra bởi một srcRegion Rectangle. Sau đó tôi muốn dán (thông tin điểm ảnh khôn ngoan) khu vực đó vào một hình ảnh khác được gọi là bitmap destBitmap, trong một vùng đích Hình chữ nhật destRegion. Tôi biết cách lấy vùng từ nguồn và đặt nó vào một đối tượng Bitmap, nhưng tôi chưa thể tìm ra cách dán một đối tượng Bitmap vào một vùng nhất định, bên trong một đối tượng Bitmap lớn hơn.Sao chép C# dán vùng hình ảnh vào một hình ảnh khác

Có cách nào nhanh chóng để thực hiện việc này không? (không có GDI và không delving vào mảng byte của các Bitmap). Dưới đây là đoạn mã mà nên làm rõ mục tiêu của tôi

private static void CopyRegionIntoImage(Bitmap srcBitmap, Rectangle srcRegion, Bitmap destBitmap, Rectangle destRegion) 
    { 
     // get the required region from the destination 
     Bitmap region = Copy(srcBitmap, srcRegion); 
    } 
+2

Bạn đã sử dụng GDI + với lớp Bitmap. – dvdvorle

+0

Cảm ơn! Tôi đoán khuôn khổ .Net 4.0 có trình bao bọc xung quanh thư viện này. đã không nhận thức được nó, C# và dotNet không phải là bánh mì và bơ của tôi. – teodron

Trả lời

19

Sử dụng này:

public static void CopyRegionIntoImage(Bitmap srcBitmap, Rectangle srcRegion,ref Bitmap destBitmap, Rectangle destRegion) 
    { 
     using (Graphics grD = Graphics.FromImage(destBitmap))    
     { 
      grD.DrawImage(srcBitmap, destRegion, srcRegion, GraphicsUnit.Pixel);     
     } 
    } 
+2

Ah, bạn đã nhanh hơn và tốt hơn. Đã không thấy quá tải xD – dvdvorle

+0

Cảm ơn, tôi cũng không biết về tình trạng quá tải! Hy vọng nó cũng sẽ giúp người khác. Trân trọng! – teodron

+0

+1, bạn được chào đón –