سؤال

لدي شرط أن أكون قادرًا على تضمين صور tiff الممسوحة ضوئيًا في بعض تقارير SSRS.

عندما أقوم بتصميم تقرير في VS2005 وأضيف عنصر تحكم في الصورة، يتم عرض صورة tiff بشكل مثالي ولكن عندما أقوم بإنشائها.أحصل على التحذير:

Warning 2 [rsInvalidMIMEType] The value of the MIMEType property for the image ‘image1’ is “image/tiff”, which is not a valid MIMEType. c:\SSRSStuff\TestReport.rdl 0 0

وبدلاً من الصورة أحصل على علامة x الحمراء الصغيرة.

هل تغلب أحد على هذه المشكلة؟

هل كانت مفيدة؟

المحلول

بافتراض أنك تقوم بتسليم ملف الصورة عبر IIS، استخدم صفحة ASP.NET لتغيير تنسيقات الصور ونوع mime إلى شيء تريده يستطيع يستخدم.

Response.ContentType = "image/png";
Response.Clear();
using (Bitmap bmp = new Bitmap(tifFilepath))
  bmp.Save(Response.OutputStream, ImageFormat.Png);
Response.End();

نصائح أخرى

لقد كنت أبحث عن حل حول كيفية عرض صورة TIFF في تقرير SSRS ولكن لم أتمكن من العثور على أي منها، وبما أن SSRS يدعم TIFF، اعتقدت أن تحويل TIFF إلى أحد التنسيقات المدعومة سيفي بالغرض.وقد فعلت.لا أعرف إذا كان هناك تنفيذ مماثل مثل هذا، ولكني أنشر فقط حتى يتمكن الآخرون من الاستفادة أيضًا.لاحظ أن هذا لا ينطبق إلا إذا كان لديك صورة TIFF محفوظة في قاعدة البيانات.

Public Shared Function ToImage(ByVal imageBytes As Byte()) As Byte()
    Dim ms As System.IO.MemoryStream = New System.IO.MemoryStream(imageBytes)
    Dim os As System.IO.MemoryStream = New System.IO.MemoryStream()
    Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(ms)

    img.Save(os, System.Drawing.Imaging.ImageFormat.Jpeg)

    Return os.ToArray()
End Function

إليك كيفية استخدام الكود:1.في خصائص التقرير ، حدد endeneces ، انقر فوق إضافة وتصفح System.drawing ، الإصدار = 2.0.0.0 2.حدد خاصية الرمز ، ونسخ الصق الوظيفة أعلاه 3.انقر فوق موافق 4.إسقاط التحكم في الصورة من صندوق الأدوات 4.1.انقر بزر الماوس الأيمن فوق الصورة وحدد خصائص الصورة 4.2.اضبط مصدر الصورة على قاعدة البيانات 4.3.في استخدام هذا الحقل ، انقر فوق التعبير ولصق الكود أدناه = code.toimage (الحقول! formimage.value)
4.4.اضبط Mime المناسب على Jpeg

التحيات ، فولبرت

شكرًا نفذ لم يتم تجميع الكود الخاص بك ولكن الفكرة كانت سليمة.

هذه هي محاولتي التي تناسبني.

protected void Page_Load(object sender, EventArgs e)
{
    Response.ContentType = "image/jpeg";
    Response.Clear();        
    Bitmap bmp = new Bitmap(tifFileLocation);
    bmp.Save(Response.OutputStream, ImageFormat.Jpeg);
    Response.End();

}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top