Hola:
En un Form con 1 Button y 1 CrystalReportViewer, copia y pega el siguiente codigo
Imports System.IO
Public Class Form1
Dim mDataTable As New DataTable
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' Creamos una columna, y la añadimos al objeto DataTable.
Dim lDataColumn As DataColumn
lDataColumn = New DataColumn("FOTO", GetType(Byte()))
mDataTable.Columns.Add(lDataColumn)
Me.WindowState = FormWindowState.Maximized
End Sub
Private Sub btnCargar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCargar.Click
Dim ofdImagem As New OpenFileDialog
If ofdImagem.ShowDialog = Windows.Forms.DialogResult.OK Then
Try
'Crar uma nueva instancia del informe
Dim rptImagen As New CrystalReport1
Dim laBytImagen() As Byte = lF_ByteCargaImagen(ofdImagem.FileName)
Dim lDataRow As DataRow = mDataTable.NewRow
' Añadimos los datos
lDataRow.Item("FOTO") = laBytImagen
' Agregamos el registros a la colección Rows
mDataTable.Rows.Add(lDataRow)
'Usa el datatable como fuente de dados para el informe
rptImagen.SetDataSource(mDataTable)
'Muestra el informe en el reportviewer
Me.CrystalReportViewer1.ReportSource = rptImagen
Catch ex As Exception
'captura alguna excepcion
MessageBox.Show("Alguna cosa ha errado, verifique... : " & ex.Message)
End Try
End If
End Sub
Private Function lF_ByteCargaImagen(ByVal fileName As String) As Byte()
'Método para cargar una imagen del disco y retornarla como um byteStream
Dim fs As FileStream = New FileStream(fileName, FileMode.Open, FileAccess.Read)
Dim br As BinaryReader = New BinaryReader(fs)
Return (br.ReadBytes(Convert.ToInt32(br.BaseStream.Length)))
End Function
End Class
P.D.
El ejemplo tiene un fichero rpt llamado CrystalReport1 que solo tiene un campo, te muestro una imagen

Un saludo desde Bilbo
Carlos