![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
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
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|