Hãy giúp tôi với kênh alpha trong HDC. Tôi làm cho HDC dc ném CreateCompatibleDC. Hơn gọi CreateDIBSection và có thể tìm thấy byte của hình ảnh trong bộ nhớ. Hơn gọi DrawFrameControl để dc này. Tất cả các công trình, nhưng trong bộ nhớ có 4 byte cho mỗi điểm ảnh và kênh alpha điền vào 00. Ngay cả khi có FF trước đó. Nhưng tôi cần kênh alpha. Làm thế nào tôi có thể làm cho DrawFrameControl đặt giá trị alpha thực hoặc chỉ không chạm vào chúng. Cảm ơn bạn. Và xin lỗi vì tiếng anh xấu: (Kênh Alpha trong DeviceContext (HDC)
Trả lời
Bạn không thể làm cho GDI không ghi vào byte alpha/dự trữ của bitmap bốn byte cho mỗi pixel. GDI không thực sự là nhận thức alpha, ngoại trừ một cặp vợ chồng Tuy nhiên, bạn có thể sử dụng kiến thức mà nó viết và đặt lại alpha thành 0 để biết pixel nào được ghi là và sửa lỗi alpha theo cách thủ công sau đó
Để biết thêm thông tin, hãy đọc ba bài viết:
- Transparent Graphics with GDI, Part 1
- Transparent Graphics with GDI, Part 1 1/2
- Transparent Graphics with GDI, Part 2
Hai đầu tiên có thể cung cấp cho bạn đầy đủ thông tin để đạt được những gì bạn muốn. Các bài viết này có cách tiếp cận chung để xử lý alpha với các chức năng GDI, bằng cách quét các điểm ảnh mà alpha bị ghi đè và sửa nó (và đi sâu vào các kỹ thuật nâng cao để vẽ nhiều thứ lên nhau, với alpha chính xác).) FrameRect
vẽ hình chữ nhật trong đó các dòng là một đơn vị rộng và cao. Bạn có thể thấy nó hiệu quả hơn để vẽ bằng cách sử dụng các dòng, hoặc thậm chí trực tiếp chỉnh sửa bitmap pixel trong bộ nhớ, để vẽ các đường thẳng trong bộ nhớ. Điều đó tránh phải quét toàn bộ bitmap cho các pixel được GDI vẽ - sau khi tất cả, vì nó là một hình chữ nhật với các cạnh rộng một đơn vị, bạn biết chính xác các pixel nào sẽ được vẽ ra và có thể tự chỉnh sửa chúng.
- 1. Kênh alpha alpha OpenGL ES 2.0
- 2. Kênh alpha không nhất quán trong ba.js
- 3. Làm phẳng kênh alpha trong ggplot2
- 4. Bản đồ hình ảnh theo kênh alpha
- 5. Nhấp qua div với kênh alpha
- 6. ImageIO bỏ qua kênh alpha PNG
- 7. Hiển thị PNG với kênh alpha trong C#
- 8. Phát lại video gốc trên Android với kênh alpha
- 9. Nhận CGPath cho một hình ảnh với kênh Alpha
- 10. OpenCV 2.4 Jpeg tới PNG với kênh alpha
- 11. Thêm kênh alpha vào một màu đã cho
- 12. kênh alpha trong ggplot2 không hoạt động sau khi cài đặt 2.15
- 13. Sử dụng Graphics.DrawImage() để Vẽ hình ảnh với Kênh trong suốt/Alpha
- 14. Chỉ chỉnh sửa lớp alpha trong GIMP
- 15. Hiệu suất XAML: Đặt kênh alpha của bàn chải so với Độ mờ của FrameworkElement
- 16. Chuyển đổi BitmapImage thành thang độ xám và giữ kênh alpha
- 17. Chuyển đổi .mov sang .mp4 và giữ kênh alpha bằng FFMPEG
- 18. Thêm Kênh Alpha vào Màu nền bằng cách sử dụng jQuery/JavaScript
- 19. WPF - Làm cách nào để lưu PNG mà không có kênh alpha?
- 20. Kết hợp alpha OpenGL
- 21. Chia sẻ HDC giữa các quy trình khác nhau
- 22. IOS: đặt alpha trong UIImage
- 23. DirectX 11 Alpha Blending Không hoạt động
- 24. Làm thế nào để tạo một Gdiplus :: Bitmap từ một HBITMAP, giữ lại thông tin kênh alpha?
- 25. Lấy giá trị alpha pixel cho UIImage
- 26. Số yếu tố trong kênh
- 27. WPF BitmapImage và TIFF với CMYK + Alpha
- 28. Hoạt ảnh alpha alpha mờ dần với sự chậm trễ
- 29. View với alpha thấp - subview với alpha cao
- 30. Android: tải bitmap mặt nạ alpha