Foros del Web » Programación para mayores de 30 ;) » .NET »

Pasar Codigo VB a C#

Estas en el tema de Pasar Codigo VB a C# en el foro de .NET en Foros del Web. Hola a todos. Estoy tratando de pasar este codigo a C# Código: 'Esta función convierte la imagen a Byte Public Function ImageToByte(ByVal pImagen As Image) ...
  #1 (permalink)  
Antiguo 21/08/2007, 20:49
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Pasar Codigo VB a C#

Hola a todos.

Estoy tratando de pasar este codigo a C#

Código:
'Esta función convierte la imagen a Byte
Public Function ImageToByte(ByVal pImagen As Image) As Byte()
    Dim mImage() As Byte
    Try
        If Not IsNothing(pImagen) Then
            Dim ms As New System.IO.MemoryStream
            pImagen.Save(ms, pImagen.RawFormat)
            mImage = ms.GetBuffer
            ms.Close()
            Return mImage
        End If
    Catch
    End Try
End Function
Lo que logre hace quedo asi:

Código:
        public byte[] ImageToByte(Image imagencita)
        {
            byte[] imgbyte;
     
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                imagencita.Save(ms,imagencita.RawFormat);
                imgbyte = ms.GetBuffer();
                ms.Close();
                return imgbyte;
        }
Se que esta medio bien, pero no entiendo mucho de vb asi que hasta donde lo loque creo que esta medio bien.

Pero aun no puedo hacer este reporte

http://www.dotnetcr.com/Libreria.aspx?art=62

Muchas gracias a los que me puedan ayudar.
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #2 (permalink)  
Antiguo 22/08/2007, 10:14
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 10 meses
Puntos: 50
Re: Pasar Codigo VB a C#

Hola que tal, yo hace tiempo hice un código en c# para colocar imágenes en un reporte de cristal reports 2005, te dejo el link para que veas si te sirve de algo

http://www.forosdelweb.com/f29/imagenes-crystal-reports-2005-a-437057/
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #3 (permalink)  
Antiguo 22/08/2007, 20:01
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Re: Pasar Codigo VB a C#

Hola.

Ocurre esto, mi dataset queda con estos datos (vistos en el Dataset Visualizer)
ID Descripcion Imagen
1 Imagen 1 System.Byte[]
2 Imagen 2 System.Byte[]
3 Imagen 3 System.Byte[]

Y el codigo es este:

Load:
Código:
private void Form1_Load(object sender, EventArgs e)
        {
            rptReporte rpt = new rptReporte();
            DataSet mids = RetornarDataSet();
            rpt.SetDataSource(mids.Tables[0]);

            crystalReportViewer1.ReportSource = rpt;

        }
Código:
 public static byte[] tomaBytes(string archivin)
        {
            FileStream obtenArchivo = new FileStream(archivin, FileMode.Open);
            BinaryReader br = new BinaryReader(obtenArchivo);
            byte[] imagenBytes = new byte[(int)obtenArchivo.Length];
            // int valor = imagenBytes .Length;
            br.Read(imagenBytes, 0, (int)obtenArchivo.Length);
            br.Close();
            obtenArchivo.Close();
            return imagenBytes;
        }

        DataSet RetornarDataSet()
        {
            DataRow dr;// = new DataRow();
            DataTable dt = new DataTable();
            DataSet ds = new DataSet();

            dt.Columns.Add("Codigo", System.Type.GetType("System.String"));
            dt.Columns.Add("Descripcion", System.Type.GetType("System.String"));
            dt.Columns.Add("Imagen", System.Type.GetType("System.Byte[]"));

            dr = dt.NewRow();
            dr["Codigo"] = 1;
            dr["Descripcion"] = "Imagen 1";
            dr["Imagen"] = tomaBytes(Application.StartupPath + @"\Imagen1.jpg");
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Codigo"] = 2;
            dr["Descripcion"] = "Imagen 2";
            dr["Imagen"] = tomaBytes(Application.StartupPath + @"\Imagen2.jpg");
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Codigo"] = 3;
            dr["Descripcion"] = "Imagen 3";
            dr["Imagen"] = tomaBytes(Application.StartupPath + @"\Imagen3.jpg");
            dt.Rows.Add(dr);

            ds.Tables.Add(dt);
            ds.Tables[0].TableName = "Imagenes";
            
            return ds;
        }
El problema es que veo la misma imagen repetidar tres veces y los campos ID y Descripcion no se visualizan en el reporte.

Gracias
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #4 (permalink)  
Antiguo 23/08/2007, 09:16
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 10 meses
Puntos: 50
Re: Pasar Codigo VB a C#

En el ejemplo que te coloque solo se puede visualizar el reporte de un solo registro...
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #5 (permalink)  
Antiguo 23/08/2007, 18:26
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Re: Pasar Codigo VB a C#

Con una pequeña moficacion a la funcion tomabytes() queda listo el dataset.

mira esto:
http://www.forosdelweb.com/f29/mostrar-imagenes-crystal-reports-328199/#post2108107

Gracias
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:35.