Sto utilizzando un file di report e un controllo ReportViewer per mostrare un report che carica i dati dinamicamente dagli oggetti durante l'esecuzione.Come mostrare l'immagine dall'array di byte nel report Microsoft
Ho bisogno di mostrare un'immagine che è memorizzata come una matrice di byte nell'oggetto.
Il valore del PictureBox è attualmente impostato su:
=First(Fields!ImageData.Value, "dtstItemImage")
E io impostare il DataSource utilizzando:
ImageBindingSource.DataSource = this.item.Image.ImageData;
Il codice compilato ed eseguito, ma l'immagine non viene visualizzato nel report.
Ciò è dovuto al fatto che PictureBox deve essere associato a un oggetto Immagine (e non a un array di byte)? O ci sono forse alcune proprietà del PictureBox che devo impostare?
UPDATE 1
Ho aggiunto un bordo al PictureBox solo per assicurarsi che sia la sua visibile e tuttavia esse indicano nel rapporto. Semplicemente non contiene l'immagine.
UPDATE 2
Ho corretto un errore nel mio codice. Ho cambiato:
ImageBindingSource.DataSource = this.item.Image.ImageData;
a:
ImageBindingSource.DataSource = this.item.Image;
come PictureBox è legato al campo ImageData MA il DataSource è l'oggetto immagine.
Ora ho una piccola icona a croce invece di niente che (almeno per me) indica qualche progresso ma non so dove debba essere il byte [] - codice di conversione bitmap.
Come viene formattata l'immagine? Probabilmente hai bisogno di deserializzare un flusso di byte: http://stackoverflow.com/questions/1156608/feedback-on-code-to-serialize-deserialize-and-save-image – MrFox
Cosa intendi con "formattato"? L'immagine nell'array di byte è presa da una cella BLOB del database ed è un JPEG. – Rachel
@Rachel, MrFox (e io sotto) si riferiscono a come l'immagine è stata codificata in un array di byte. Potrebbe essere necessario tamponare i byte per allinearli ai limiti. Guarda come l'ho fatto in questo Q & A http://stackoverflow.com/questions/2750342/unsigned-char-buffer-freetype2-bitmap-to-systemdrawingbitmap – Dennis