elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Renombrar el mismo archivo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Renombrar el mismo archivo  (Leído 2,551 veces)
Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Renombrar el mismo archivo
« en: 29 Marzo 2022, 20:58 pm »

Buenas:

Este programa redimensiona una imagen. Una vez redimensionado y guardado, se tiene que guardar con otro nombre.

¿Hay alguna forma de guardar el archivo con el mismo nombre?

Por supuesto, la versión vieja se eliminará.

Por ahora este es el código.
Código
  1. using System;
  2. using System.Drawing;
  3. using System.Drawing.Imaging;
  4.  
  5. namespace Cambiar_tamaño_imagen_Consola_01
  6. {
  7.    internal class Program
  8.    {
  9.        public static Image resizeImage(Image imgToResize, Size size)
  10.        {
  11.            return (Image)(new Bitmap(imgToResize, size));
  12.        }
  13.        static void Main(string[] args)
  14.        {
  15.            #region Configuración ventana.
  16.            // Título de la ventana.
  17.            Console.Title = "Cambiar tamaño imagen";
  18.  
  19.            // Tamaño de la ventana, x, y.
  20.            // Tamaño de la ventana, x, y.
  21.            const int anchoX = 80;
  22.            const int altoY = 30;
  23.            Console.SetWindowSize(anchoX, altoY);
  24.  
  25.            // Color de fondo.
  26.            Console.BackgroundColor = ConsoleColor.Green;
  27.  
  28.            // Color de las letras.
  29.            Console.ForegroundColor = ConsoleColor.Black;
  30.  
  31.            // Limpiar pantalla y dejarlo todo en color de fondo.
  32.            Console.Clear();
  33.  
  34.            // Visible el cursor.
  35.            Console.CursorVisible = false;
  36.            #endregion
  37.  
  38.            //string path = "E:\\Imagenes\\Imagen.jpg";
  39.            string path = @"E:\Imagenes\Imagen.jpg";
  40.            Image img = Image.FromFile(path);
  41.            Bitmap imgbitmap = new Bitmap(img);
  42.  
  43.            if (img != null)
  44.            {
  45.                using (Image resizedImage = new Bitmap(img, new Size(20, 20)))
  46.                {
  47.                    resizedImage.Save(@"E:\Imagenes\Imagen0.jpg", ImageFormat.Jpeg);
  48.                    Console.WriteLine("Imgen redimensionado correctamente.");
  49.                }
  50.            }
  51.        }
  52.    }
  53. }

Saludos.


En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.667


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Renombrar el mismo archivo
« Respuesta #1 en: 29 Marzo 2022, 23:48 pm »

Hola, lo que podes hacer es que una vez que has cambiado el tamaño de la imagen, posteriormente podrías abrir esa misma imagen (la que has cargado para cambiarle su tamaño) en modo escritura y guardar en ese archivo -que sería el archivo de la imagen- el contenido binario de la imagen ya modificada, por lo tanto conservaría el mismo nombre pero con su tamaño modificado.
Prueba eso y nos comentas.


Saludos


En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Renombrar el mismo archivo
« Respuesta #2 en: 30 Marzo 2022, 22:24 pm »

Buenas campeón:

Tienes razón, ya funciona.
Código
  1. using System;
  2. using System.Drawing;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text.RegularExpressions;
  6.  
  7. namespace Cambia_tamaño_imagen_Consola_04
  8. {
  9.    internal class Program
  10.    {
  11.        static void Main(string[] args)
  12.        {
  13.            #region Configuración ventana.
  14.            // Título de la ventana.
  15.            Console.Title = "Cambiar tamaño imagen";
  16.  
  17.            // Tamaño de la ventana, x, y.
  18.            // Tamaño de la ventana, x, y.
  19.            const int anchoX = 80;
  20.            const int altoY = 30;
  21.            Console.SetWindowSize(anchoX, altoY);
  22.  
  23.            // Color de fondo.
  24.            Console.BackgroundColor = ConsoleColor.Green;
  25.  
  26.            // Color de las letras.
  27.            Console.ForegroundColor = ConsoleColor.Black;
  28.  
  29.            // Limpiar pantalla y dejarlo todo en color de fondo.
  30.            Console.Clear();
  31.  
  32.            // Visible el cursor.
  33.            Console.CursorVisible = false;
  34.            #endregion
  35.  
  36.            // Ruta de la carpeta
  37.            string path = @"E:\Imagenes";
  38.  
  39.            // Validar la existencia de la carpeta
  40.            if (!Directory.Exists(path))
  41.            {
  42.                Console.WriteLine("El directorio no existe...");
  43.                return;
  44.            }
  45.  
  46.            // Filtramos la búsqueda en toda la carpeta (incluida subcarpetas) y obtenemos
  47.            // los archivos .jpg | .jpeg | .png | .gif | .bmp | .tif
  48.            var imageFiles = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories)
  49.                                      .Where(f => Regex.IsMatch(f, @"^.+\.(jpg|jpeg|png|gif|bmp|tif)$"))
  50.                                      .ToList();
  51.  
  52.            foreach (string imageFile in imageFiles)
  53.            {
  54.                string filename = Path.Combine(path, imageFile);
  55.  
  56.                byte[] b = File.ReadAllBytes(filename);
  57.                Image img = Image.FromStream(new MemoryStream(b));
  58.  
  59.                using (Image resizedImage = new Bitmap(img, new Size(20, 20)))
  60.                {
  61.                    resizedImage.Save(filename);
  62.                }
  63.            }
  64.  
  65.            Console.WriteLine("Imágenes redimensionadas correctamente...");
  66.  
  67.            Console.WriteLine("Pulse cualquier tecla para salir.");
  68.  
  69.            // Pulse cualquier tecla para salir.
  70.            Console.ReadKey();
  71.        }
  72.    }
  73. }
  74.  

Gracias por la información.
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: Renombrar el mismo archivo
« Respuesta #3 en: 31 Marzo 2022, 16:39 pm »

Es complicar las cosas innecesariamente.
Si la imagen primera es de mayor tamaño que la imagen final, entonces la imagen final contendrá tras de sí información que no pertenece a la imagen y que tan solo hace el fichero más grande. Es válido siempre que la imagen final sea igual o más grande que la de origen.

Lo ideal es:
1 - Leer "ImagenA.xxx"
2 - Manipular imagen A
3 - Guardar como "ImagenB.tmp"
4 - Eliminar/mover a otra carpeta(si se precisa conservar) "ImagenA.xxx"
5 - Renombrar "ImagenB.tmp" como "ImagenA.xxx"

Los pasos 4 y 5 son inecesarios si se cambia el paso 3, por
3 - Guardar (en otra carpeta) como "ImagenA.xxx"
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
renombrar un archivo
Programación Visual Basic
Robokop 5 2,459 Último mensaje 28 Diciembre 2005, 02:36 am
por Robokop
renombrar un archivo con una parte de su contenido
Dudas Generales
Pipo0077 2 4,350 Último mensaje 11 Octubre 2011, 14:53 pm
por batch_party
MASM 6.0 int 21h AH=056h Renombrar archivo
ASM
isrcar 1 4,306 Último mensaje 26 Marzo 2010, 10:08 am
por Eternal Idol
(SOLUCIONADO) ¿Como renombrar un archivo o carpeta con el mismo nombre?
.NET (C#, VB.NET, ASP)
Eleкtro 2 9,932 Último mensaje 19 Diciembre 2012, 20:11 pm
por Eleкtro
(Consulta) Archivo en el mismo directorio, con el mismo nombre
Windows
class_OpenGL 2 2,485 Último mensaje 14 Agosto 2016, 15:21 pm
por class_OpenGL
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines