2012-02-28 17 views
8

Resim olarak dosya ekledim ve kaynağı kaynak olarak ayarladım (bkz. Ekran görüntüsü) Resx dosyaları, vb. Kullanmadan bayt dizisi olarak nasıl çekebilirim? Bu bir web sitesi için iseyük kaynağını programlı olarak bayt dizisi olarak yükleme

enter image description here

+1

Web’i sormadan önce aradığını sanmıyorum. http://support.microsoft.com/kb/319292 – Oded

+0

Evet, ama nasıl gösterileceğini göstermiyor [byte [] ' – katit

cevap

9

İşlem, How to embed and access resources by using Visual C#'da açıklanmıştır.

Temel olarak, Assembly sınıfını kullanarak yansımanın kullanılmasını gerektirir.

Stream imageStream = 
      currentAssembly.GetManifestResourceStream("Resources.logo_foot.png"); 

bir Stream bir byte[] nasıl ayrıntıları için How to convert an Stream into a byte[] in C#? bakınız.

+0

Çalışmak için tüm ad alanını yazmak zorunda kaldım. Hangi kaynaklara sahip olduğunuzdan şüpheniz varsa, currentAssembly.GetManifestResourceNames() –

7

Nesneler, ürün işaretlerinden bile daha basittir!

Dosyadaki kaynaklara tıklarsanız ve özellikler penceresini görüntülerseniz, Dosya Türünü ikili olarak ayarlayabilirsiniz. Sonra FileName kaynağınız adıdır basit

var byteArray = Properties.Resources.FileName;

ile kodunda ByteArray erişebilirler. doğrudan resim kullanmak dont

+2

Visual Studio Express 2010'u kullanma PNG kaynağının türünü değiştiremedim, ancak kaynak olarak eklemeden önce dosyayı .bin olarak yeniden adlandırdım. ve bu harika çalıştı! – lapo

+0

Visual Studio 2017'de Dosya Türünü değiştirme seçeneği göremiyorum –

+0

Özellikler Penceresi'ne baktığınızdan emin misiniz? Sadece VS2017 kurulumumu kontrol ettim ve kesinlikle orada. –

3

(yani: Projeniz Windows App ise bir kontrolden) daha sonra yaparsın:

1- değişiklik dosyası uzantısı (yani: * .jpg.data)

Resources.PathToImages.ResxFileName.ImageName

Not:

2- kaynak dosyası RESX

3- erişim kullanılarak bayt dizisi için "görüntü" ekleme RESX değişmeden uzantılı resim eklemek halinde derleyici, bir bayt yerine bir Bitmap özelliği oluşturur. roperty.