Cómo pasar una variable a MagicImage
Estoy tratando de usar MagicImage para convertir HEIC a JPEG, por lo que mi variable newFile.Data contiene un byte[] de la imagen que se envió al servidor. Estoy bastante seguro de que mi código es correcto, pero cuando envío la imagen al servidor, es decir, a la web, se carga en formato HEIC pero la necesito en formato jpeg. Estoy atrapado aquí y no puedo averiguar qué debo hacer.
using (var image = new MagickImage(newFile.Data))
{
// Establece el formato de salida a jpeg
image.Format = MagickFormat.Jpeg;
// Crea un array de bytes que contiene un archivo jpeg
byte[] data = image.ToByteArray();
}
var currentFiles =
_clientFileService.Value.GetFilesByClient(clientId).Where(x => x.ClientFileType == type).Select(x => x.Id).ToList();
_clientFileService.Value.MultipleDelete(currentFiles, null);
_clientFileService
.Value
.AddFile(
new ClientFile
{
Data = newFile.Data, // ¿Cómo puedo pasar MagickImage a newFile.Data?
Guid = Guid.NewGuid()
});
davy.ai
Parece que el código proporcionado está convirtiendo correctamente la imagen de HEIC a JPEG utilizando ImageMagick. Sin embargo, el problema está en cómo se pasa la imagen convertida a
newFile.Data
y se sube al servidor.Una solución sería reemplazar
newFile.Data
por la matriz de bytesdata
que se generó después de convertir la imagen a JPEG. Esto se puede hacer actualizando la llamada al métodoAddFile
de la siguiente manera:Esto asegurará que la imagen JPEG convertida se esté subiendo al servidor en lugar de la imagen HEIC original.