2010-06-24 34 views
9

Có cách nào hiển thị đúng hình ảnh với kênh alpha (giả sử PNG) trong ứng dụng C# không? Cảm ơn bạn đã đề xuất.Hiển thị PNG với kênh alpha trong C#

CẬP NHẬT:

OK, câu hỏi của tôi hơi không chắc chắn. Tôi muốn có được tính minh bạch thực sự của kênh alpha - không được tô màu nền của bố mẹ. Trong hình bên dưới, chúng ta có thể thấy rằng độ trong suốt được hỗ trợ, nhưng một phần của nút nằm bên dưới ảnh không hiển thị. Có thể có sự minh bạch thực sự về kênh alpha của hình ảnh không?

image presenting not-total transparency http://img684.imageshack.us/img684/8804/transpt.jpg

+4

Loại ứng dụng nào? winform? wpf? html/ASP.NET? html/ASP.NET MVC? silverlight? xna? điện thoại 7? windows mobile? iPhone? đồng hồ đeo tay (micro-framework)? gtk # (mono)? –

+2

"Hiển thị không đúng" trông như thế nào? –

+0

@Marc Gravell - đó là một ứng dụng biểu mẫu C# windows chuẩn @Hans Passant - gợi ý tốt - xem CẬP NHẬT – rafalry

Trả lời

3

Vâng, System.Drawing.Image.FromFile ("filename.png"); Khuôn khổ .NET hỗ trợ tính minh bạch cho nhiều loại tệp, tôi không nghĩ rằng nó hoạt động với JPEG, nhưng PNG sẽ ổn.

6

Nếu đó là winforms thì không. "minh bạch" trong winforms là không minh bạch thực sự.

Những gì bạn có thể làm là để tạo ra một hình thức alphatransparent thu hút sự PNG và định vị nó ở đúng vị trí và di chuyển ràng buộc, vv alt text http://www.codeproject.com/KB/GDI-plus/perpxalpha_sharp.aspx

PerPixelAlphaForm transparentImageForm = new PerPixelAlphaForm(); 
transparentImageForm.SetBitmap(<IMAGE GOES HERE>,<OPACITY GOES HERE>); 

// opacity là opacity rằng hình ảnh sẽ được vẽ với, giá trị 255 = tất cả các phần trong suốt sẽ là alpha/trong suốt cũng giống như PNG gốc v.v.

CHỈNH SỬA: HOẶC TỚI WPF.

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