Tôi đã thêm hình ảnh làm tệp và đặt làm tài nguyên (xem ảnh chụp màn hình) Làm cách nào để kéo nó thành mảng byte mà không sử dụng tệp resx, v.v ...?tải tài nguyên dưới dạng mảng byte lập trình
Trả lời
Quy trình được mô tả trong How to embed and access resources by using Visual C#.
Về cơ bản, yêu cầu sử dụng phản chiếu, sử dụng lớp Assembly
.
Stream imageStream =
currentAssembly.GetManifestResourceStream("Resources.logo_foot.png");
Xem How to convert an Stream into a byte[] in C#? để biết chi tiết về cách để có được một byte[]
từ một Stream
.
Tôi đã phải gõ toàn bộ không gian tên để làm cho nó hoạt động. Nếu bạn nghi ngờ tài nguyên nào bạn có, hãy gọi currentAssembly.GetManifestResourceNames() –
Nếu đây là cho một trang web bạn có thể base64
mã hóa hình ảnh và thêm nó như là src
của một phần tử image
hoặc trong một định nghĩa background-image
trong CSS
:
http://www.motobit.com/util/base64-decoder-encoder.asp
Lưu ý Điều này sẽ loại bỏ sự phụ thuộc của việc lưu tệp trên máy chủ, điều này có thể tốt hay xấu.
Mọi thứ thậm chí còn đơn giản hơn mục được đánh dấu là câu trả lời!
Nếu bạn bấm vào tệp trong tài nguyên và xem cửa sổ thuộc tính, bạn có thể đặt Loại tệp thành nhị phân. Sau đó, bạn có thể truy cập vào bytearray trong mã với một đơn giản
var byteArray = Properties.Resources.FileName;
nơi FileName là tên của tài nguyên của bạn.
Sử dụng Visual Studio Express 2010 Tôi không thể thay đổi loại tài nguyên PNG, nhưng tôi đã đổi tên tệp thành .bin trước khi thêm làm tài nguyên và điều đó làm việc tuyệt vời! – lapo
Tôi không thể thấy bất kỳ tùy chọn nào để thay đổi Loại Tệp trong Visual Studio 2017 –
Bạn có chắc chắn bạn đang tìm trong Cửa sổ Thuộc tính không? Tôi chỉ cần kiểm tra trong cài đặt của tôi VS2017 và nó chắc chắn là có. –
Nếu bạn không sử dụng hình ảnh trực tiếp (ví dụ: từ một điều khiển nếu dự án của bạn là một ứng dụng Windows) sau đó bạn có thể:
1- thay đổi phần mở rộng tập tin (ví dụ: * .jpg.data)
2- thêm "hình ảnh" vào một tập tin tài nguyên RESX
3 truy cập mảng byte sử dụng: Resources.PathToImages.ResxFileName.ImageName
Lưu ý: nếu bạn thêm hình ảnh với phần mở rộng không thay đổi các RESX trình biên dịch tạo ra một thuộc tính Bitmap thay vì một byte [] p roperty.
Tôi không nghĩ rằng bạn đã tìm kiếm trên web trước khi yêu cầu. http://support.microsoft.com/kb/319292 – Oded
Có, nhưng nó không cho thấy làm thế nào để có được 'byte []' – katit