FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Te pongo código a ver qué tal, ahí se ve como redimensionar una imagen y como comprimirla para reducir su tamaño, (aunque si la reduces de dimensiones, por lógica también reduce su tamaño).
Código:
//Usamos el bmp para redimensionar el jpg Graphics::TBitmap* bmp = new Graphics::TBitmap; TJPEGImage* jpg = new TJPEGImage; jpg->LoadFromFile( "foto.jpg" ); bmp->Height = 100; bmp->Width = 100; bmp->Canvas->StretchDraw( bmp->Canvas->ClipRect, jpg ); jpg->Assign( bmp ); //Según la compresión varia el tamaño, menor compresión, menor tamaño, pero también menor calidad de la imagen jpg->CompressionQuality = 90; jpg->Compress(); jpg->SaveToFile( "c:\\lolo.jpg" ); delete jpg; |
#2
|
||||
|
||||
Gracias _cero_ el código me funcionó perfecto
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código. Cuando miras fijamente al abismo, este te devuelve la mirada oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_ oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_ oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_ oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_ oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_ ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_ ________________________________________________________________________________ |
#3
|
||||
|
||||
Aquí les dejo el código completo por si a alguien le hace falta
Código:
void __fastcall TForm3::Button1Click(TObject *Sender) { int b; String a; //Usamos el bmp para redimensionar el jpg Graphics::TBitmap* bmp = new Graphics::TBitmap; TJPEGImage* jpg = new TJPEGImage; //Obtenemos la imagen de un OpenDialog1 en el cual fue previamente abierta jpg->LoadFromFile(OpenDialog1->FileName); //Asignamos el ancho y largo a partir de dos Edits bmp->Width = StrToInt(Edit1->Text); bmp->Height = StrToInt(Edit2->Text); bmp->Canvas->StretchDraw( bmp->Canvas->ClipRect, jpg ); jpg->Assign( bmp ); //Asignamos la compresión a partir de un TrackBar //Según la compresión varia el tamaño, menor compresión, menor tamaño, pero también menor calidad de la imagen jpg->CompressionQuality = TrackBar1->Position; jpg->Compress(); //obtener la extension del fichero seleccionado b = OpenDialog1->FileName.Length() - 3; a = OpenDialog1->FileName.Delete(1,b); a = a.LowerCase(); //Guardamos la imagen jpg->SaveToFile("CONVERTIDA-" + IntToStr(Button1->Tag)+ "." + a); delete jpg; Button1->Tag = Button1->Tag + 1; }
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código. Cuando miras fijamente al abismo, este te devuelve la mirada oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_ oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_ oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_ oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_ oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_ ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_ ________________________________________________________________________________ |
#4
|
||||
|
||||
Por favor, crea un nuevo hilo con tu consulta, no repitas lo mismo en distintos hilos si no es para responder o aportar algo al hilo existente. Gracias
|
#5
|
||||
|
||||
solo un detalle y que me corrijan si me equivoco. StretchDraw hacia que la imagen perdiera mucha calidad y en su momento, cuando yo me interesé por ese tema, me indicaron otro metodo usando las apis de windows pero ahora mismo no recuerdo como era y tendria que buscar el codigo.
|
#6
|
||||
|
||||
StretchDraw tenia un problema, restaba mucha calidad a las imagenes. En su tiempo, cuando yo me interesé por el tema, me ayudaron a hacerlo de otra forma. Os pongo un enlace con la prueba que hice donde, ademas de poder redimensionarla, tambien se puede exportar a jpg y ademas se puede arrastrar la imagen en el TImage para desplazarnos por ella sin necesidad de scrollbars. Espero que te sirva.
Enlace: https://mega.co.nz/#!NhNBXbKK!mkkwV4...EBErPlElWT0DY8 Última edición por aguml fecha: 24-09-2014 a las 14:15:47. |
#7
|
||||
|
||||
una cosa mas, creo recordar que el objeto TJPEJImage tiene una funcion para redimensionar el jpg (creo que era resize o algo asi) pero ya para para hacerlo por tamaño en bytes no se.
|
#8
|
||||
|
||||
Ya que se reabre este tema, voy a aportar una solución usando GDI+ que no tiene el inconveniente de la pérdida de calidad clásica de Stretch y usa HBITMAP con lo que se puede usar con cualquier formato de compresión. Podéis ver el código en C y delphi en este enlace: Redimensionar una imagen con GDI+ flat API.
Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿Cómo cambiar tamaño una imagen después de cargarla? | Master23 | Varios | 4 | 03-08-2010 18:37:58 |
¿Como cambiar el tamaño a una imagen? | flystar | Varios | 1 | 22-04-2010 19:23:51 |
como saber y cambiar el tamaño a una imagen | Negriz | C++ Builder | 10 | 09-06-2008 00:00:21 |
Cambiar tamaño de una imagen antes de guardar en una bd | chux | Gráficos | 6 | 28-11-2006 11:58:58 |
Cambiar el tamaño de una imagen | inter_mercadeo | Gráficos | 2 | 25-02-2005 17:43:54 |
|