पर टीआईएफएफ (बाइट [] के रूप में) को प्रदर्शित करने के लिए कैसे मैंने अपनी सभी टीआईएफएफ फ़ाइलों को डेटाबेस में रखने के लिए एक विंडो सेवा बनाई और उन्हें Byte[]
के रूप में संग्रहीत किया।सिल्वरलाइट छवि नियंत्रण
अब मैं Silverlight छवि नियंत्रण
तो मैं क्रम में XAML बाइंडिंग दौरान कनवर्टर का उपयोग करने के लिए Bitmap
Byte[]
कन्वर्ट करने के लिए क्योंकि Image.Source
केवल eitheir यूआरआई स्वीकार माध्यम से उन्हें प्रदर्शित करने के लिए सक्षम होना चाहते हैं (मेरे पास नहीं है सर्वर पर संग्रहीत फ़ाइल इस विधि का उपयोग नहीं कर सकती है) या Bitmap
।
BitmapImage bmi = new BitmapImage();
if (value != null)
{
ImageGallery imageGallery = value as ImageGallery;
byte[] imageContent = imageGallery.ImageContent;
string imageType = imageGallery.ImageType;
using (MemoryStream ms = new MemoryStream(imageContent))
{
bmi.SetSource(ms);
}
}
return bmi;
हालांकि, मैं bmi.SetSource(ms)
पर अपवाद मिलता है क्योंकि सिल्वरलाइट केवल JPEG और PNG छवियाँ समर्थन करता है।
इसलिए मैंने और अधिक शोध किया और मुझे पता था कि मुझे टीआईएफएफ के बाइट्स को जेपीईजी या पीएनजी के बाइट्स में परिवर्तित करना चाहिए, फिर यह काम करेगा।
- सर्वर पर रूपांतरण करने से:
है कि मैं दो तरीकों की कोशिश की करने के लिए मेरी रिया सेवा कॉल में,
ImageGallery
पुन: प्राप्त करने के बाद, मैं उपलब्ध छवि के माध्यम से लूप बाइट्स TIFF के बाइट्स कन्वर्ट करने के लिए जेपीईजी का।
लेकिन यह काम नहीं करता है .... क्या आप मुझे बता सकते हैं कि मैंने गलत कहां किया?
public IQueryable<ImageGallery> GetImageGalleries()
{
var imageGalleries = this.ObjectContext.ImageGalleries.OrderBy(i=>i.ImageName);
foreach (ImageGallery imageGallery in imageGalleries)
{
if (imageGallery.ImageType == ".tif" || imageGallery.ImageType == ".tiff")
{
//Convert the Tiff byte array format into JPEG stream format
System.Drawing.Bitmap dImg = new System.Drawing.Bitmap(new MemoryStream(imageGallery.ImageContent));
MemoryStream ms = new MemoryStream();
dImg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
//then convert the JPEG stream format into JPEG byte array format
byte[] buf = new byte[ms.Length];
ms.Read(buf, 0, buf.Length);
//Changing the format tiff byte[] of ImageGallery to jpeg byte[]
imageGallery.ImageContent = buf;
}
}
return imageGalleries;
}
- अन्य समाधान LibTiff.Net पुस्तकालय का उपयोग करने के सिल्वरलाइट पर सीधे
WritableBitmap
को TIFF कीByte[]
सीधे परिवर्तित करने के लिए है।
हालांकि, उनके नमूना आवेदन के माध्यम से खुदाई या परावर्तक का उपयोग कर स्रोत कोड कार्यों को देखने के लिए के बाद, मैं अभी भी समझ नहीं कैसे अपने पुस्तकालय का उपयोग करने के WritableBitmap
जेपीईजी (या PNG) को TIFF के बाइट्स कन्वर्ट करने के लिए है क्योंकि उनका नमूना केवल फ़ाइल निर्देशिका में टीआईएफएफ की खोज का उपयोग करने के लिए एपीआई दिखाता है। मेरे मामले में, मेरे पास सर्वर पर एक मौजूदा फ़ाइल नहीं है।
कोई मेरी मदद कर सकता है कि सिल्वरलाइट के छवि नियंत्रण पर टीआईएफएफ फ़ाइल कैसे दिखाना है?
मैंने मंच की खोज की लेकिन इसके लिए कोई ठोस जवाब नहीं मिला।
धन्यवाद