2010-03-31 34 views
9

Tôi có hình ảnh là 240x320 (hình ảnh máy ảnh iphone ở chế độ dọc) và tôi cần lập trình (trong C#) thêm "vạch" trắng vào các cạnh để tăng kích thước hình ảnh đầy đủ lên 320x320. Tôi không muốn chia tỷ lệ hình ảnh vì điều đó sẽ làm hỏng tỷ lệ khung hình.Khoảng trắng hình ảnh C#

Tôi đã tìm thấy rất nhiều thông tin về cách xóa các thanh màu trắng với C#, nhưng không có gì về cách thêm chúng. Tôi đang thua lỗ. Có ai có bất kỳ đầu vào mà có thể dẫn tôi hướng chính xác?

Cảm ơn bó, Brett

Trả lời

4

Tạo một bitmap trắng trống mới của kích thước mong muốn và blit những hình ảnh nhỏ hơn vào nó.

0

Về cơ bản tạo bitmap mới với thứ nguyên được yêu cầu, xóa nó bằng màu bạn muốn và sau đó vẽ bitmap nhỏ hơn sao cho bitmap được căn giữa theo chiều dọc.

12
using (System.Drawing.Image src = System.Drawing.Image.FromFile("picture.jpg")) 
{ 
     using (Bitmap bmp = new Bitmap(320, 320)) 
     { 
       Graphics g = Graphics.FromImage(bmp); 
       g.Clear(Color.White); 
       g.DrawImageUnscaled(src, 60, 0, 240, 320); 
       bmp.Save("file.jpg", ImageFormat.Jpeg); 
     } 
} 

Hãy nhớ để xử lý các đối tượng sau khi sử dụng;)

+0

Tuyệt vời! Cảm ơn nhiều! – Brett

+0

Mã cho câu trả lời của @ Matti. 1 cho Matti !! – kenny

+4

Đây là một ứng cử viên tốt cho tuyên bố sử dụng để xử lý việc xử lý. Ví dụ: sử dụng (Bitmap bmp = bitmap mới (320, 320)) { // ... } –

0

Dưới đây là một liên kết tuyệt vời, nơi một cách tiếp cận tổng quát hơn được mô tả cho thay đổi kích thước hình ảnh và thêm các thanh màu trắng, hoặc ở đầu hoặc ở phía dưới (phụ thuộc vào định hướng hình ảnh) c# Image resizing to different size while preserving aspect ratio

Các vấn đề liên quan