Làm việc trong Visual Studio 2008. Tôi đang cố gắng vẽ trên hình ảnh PNG và lưu lại hình ảnh đó.Sự cố với hình ảnh PNG trong C#
tôi làm như sau:
private Image img = Image.FromFile("file.png");
private Graphics newGraphics;
Và trong constructor:
newGraphics = Graphics.FromImage(img);
Xây dựng giải pháp cho không có lỗi. Khi tôi cố gắng chạy nó, tôi có được điều này:
đối tượng A Graphics không thể tạo từ một hình ảnh có định dạng điểm ảnh được lập chỉ mục.
Tôi không có nhiều kinh nghiệm về việc sử dụng hình ảnh trong C#. Điều này có nghĩa là gì và làm thế nào tôi có thể khắc phục điều này?
EDIT: thông qua gỡ lỗi, Visual Studio cho tôi biết rằng hình ảnh có định dạng format8bppindexed
pixel.
Vì vậy, nếu tôi không thể sử dụng lớp Đồ họa, tôi nên sử dụng cái gì?
EDIT2: Sau khi đọc this, tôi nghĩ rằng an toàn để giả định rằng tôi nên gắn bó với tệp JPG khi làm việc với GDI +, không?
EDIT3: tôi sử dụng-báo cáo:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
Bất kỳ may mắn với phương pháp này? http://www.c-sharpcorner.com/UploadFile/rrraman/graphicsObject08232007102733AM/graphicsObject.aspx – Greg
Tôi sử dụng tệp PNG với đối tượng Đồ họa mọi lúc. Đăng liên kết tới tệp PNG bạn đang sử dụng và chúng tôi sẽ thấy có vấn đề gì với nó. – MusiGenesis
GDI nội bộ hoạt động với Bitmap, JPG được nén và không thực sự tuyệt vời khi có hình ảnh nén để làm việc với dữ liệu thô. Hình ảnh của bạn là 8bppIndexed, đây là một định dạng bitmap, nơi các màu sắc được lưu trữ trong bảng màu không phải là dữ liệu pixel. Các đối tượng đồ họa không thể thay đổi trực tiếp các giá trị pixel, vì điều đó sẽ không thay đổi giá trị đó. Bạn cần phải chuyển đổi nó thành 24bppRGB – badbod99