Domanda

Ho il requisito di essere in grado di incorporare immagini tiff scansionate in alcuni rapporti SSRS.

Quando progetto un report in VS2005 e aggiungo un controllo immagine, l'immagine tiff viene visualizzata perfettamente comunque quando la costruisco. Ricevo l'avvertimento:

Avviso 2 [rsInvalidMIMEType] Il valore della proprietà MIMEType per l'immagine "image1" è "image / tiff", che non è un tipo MIMET valido. c: \ SSRSStuff \ TestReport.rdl 0 0

e invece di un'immagine ottengo la piccola x rossa.

Qualcuno ha superato questo problema?

È stato utile?

Soluzione

Supponendo che stai consegnando il file di immagine tramite IIS, usa una pagina ASP.NET per cambiare i formati di immagine e il tipo mime in qualcosa che puoi utilizzare.

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

Altri suggerimenti

Ho cercato con impazienza una soluzione su come visualizzare un'immagine TIFF in un rapporto SSRS, ma non ne ho trovato nessuno e poiché SSRS non supporta TIFF, ho pensato che convertire il TIFF in uno dei formati supportati avrebbe funzionato. E lo ha fatto. Non so se ci sono implementazioni simili come questa là fuori, ma sto solo postando in modo che anche altri possano trarne beneficio. Nota che questo vale solo se hai un'immagine TIFF salvata sul database.

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

Ecco come è possibile utilizzare il codice:    1. In Proprietà report, selezionare Refereneces, fare clic su Aggiungi e sfogliare System.Drawing, Version = 2.0.0.0    2. Seleziona la proprietà del codice, Copia incolla la funzione sopra    3. Fai clic su OK    4. Rilasciare un controllo Image dalla casella degli strumenti       4.1. Fare clic con il tasto destro del mouse sull'immagine e selezionare Proprietà immagine       4.2. Impostare l'origine immagine su Database       4.3. Nel campo Usa questo, fai clic su espressione e incolla il codice qui sotto            = Code.ToImage (Fields! FormImage.Value)
      4.4. Imposta il Mime appropriato su Jpeg

Saluti, Fulberto

Grazie Peter il tuo codice non è stato compilato ma l'idea era valida.

Ecco il mio tentativo che funziona per me.

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();

}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top