Es que a la hora de escribir y leer obtengo cosas a veces iguales y a veces diferentes, pero en general en la conversión dejan de ser idénticos los archivos.... me explico con mi caso:
Quiero guardar texto con una imagen, todo junto en un mismo archivo. He encontrado unas funciones muy útiles para el tema de las imágenes, ya que realizan la conversión de una imagen a una matriz de bytes, y viceversa, y así lo hago todo por código. Estas son:
Código:
Bien, a la hora de grabar, obtengo la matriz de bytes a partir de la imagen. Pero como tengo también texto, y tengo que unir texto y una matriz de bytes, tengo que pasarlo todo a un mismo tipo. Entonces hago:Shared Function Imagen_Bytes(ByVal Foto As Image) As Byte() If Not Foto Is Nothing Then Dim Codi As New IO.MemoryStream Foto.Save(Codi, Imaging.ImageFormat.Png) Return Codi.GetBuffer Else Return Nothing End If End Function Shared Function Bytes_Imagen(ByVal Foto As Byte()) As Image If Not Foto Is Nothing Then Dim Codi As New IO.MemoryStream(Foto) Dim resultado As Image = Image.FromStream(Codi) Return resultado Else Return Nothing End If End Function
Código:
Con lo que convierto el array de bytes en un string, usando una codificación ascii.Dim Conv = New System.Text.ASCIIEncoding Dim Cadena as String Cadena = Conv.GetString(ArrayBytes)
Bueno, pues ya haga lo que haga, si grabo con WriteAllBytes o con WriteAllText, o convierta de String a matriz de bytes, o viceversa, cuando leo, de cualquier manera, y vuelvo a convertir, de cualquier manera también, no consigo obtener exactamente la misma información, pues ahora cuando intento volver a formar la imagen me da un error, y eso no pasa si la matriz de bytes está bien.
Perdón por el rollo. Bueno, a ver si sabéis algo. Muchas gracias.
Salu00000010!!!