![]() |
| FTP | CCD | Enlaces | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Desplegado |
|
#1
|
||||
|
||||
|
cambiar tamaño de imagen jpg
hola amigos
Tengo una form donde cargo una imagen en un DBImage, anteriormente habia preguntado como cargar un jpg ahora lo que necesito es saber como redimensionar este jpg o sea cambiar el tamaño de la imagen en pixeles ejemplo de 800x600 a 100x100 y el tamaño en fisico ejemplo de 500 Kb a 150Kb. les dejo el código para que le hechen un ojo Gracias de antemano Código:
if(OpenDialog1->Execute())
{
if (OpenDialog1->FileName == "")
{
if (OpenDialog1->FileName == "")
{
MessageDlg("Operación cancelada" , mtInformation, TMsgDlgButtons() << mbOK, 0);
}
else
{
//obtener la extension del fichero seleccionado
b = OpenDialog1->FileName.Length() - 3;
a = OpenDialog1->FileName.Delete(1,b);
a = a.LowerCase();
if (a == "bmp" || a == "BMP")
{
DBImage1->Picture->LoadFromFile(OpenDialog1->FileName);
}
if (a == "jpg" || a == "jpeg" || a == "JPG" || a == "JPEG")
{
// Carga en memoria el fichero
jpg->LoadFromFile(OpenDialog1->FileName);
//convertir
bmp->Assign(jpg);
//poner convertido en la imagen
DBImage1->Picture->Assign(bmp);
//limpiar memoria
delete jpg;
delete bmp;
}
}
}
}
TFileStream *File = new TFileStream(OpenDialog1->FileName, fmOpenRead);
if (File->Size >= 600000)
{
MessageDlg("La imagen es demasiado grande, debe ser menor de 600000 bytes y su tamaño actual es " + IntToStr(File->Size) + " bytes", mtError, TMsgDlgButtons() << mbOK, 0);
delete File;
}
else
{
ADOQuery2->Post();
}
__________________
Cuando miras fijamente al abismo, este, te devuelve la mirada Última edición por lmpadron fecha: 02-12-2011 a las 17:22:25. |
|
#2
|
|||
|
|||
|
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;
|
|
#3
|
||||
|
||||
|
Gracias _cero_ el código me funcionó perfecto
__________________
Cuando miras fijamente al abismo, este, te devuelve la mirada |
|
#4
|
||||
|
||||
|
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;
}
__________________
Cuando miras fijamente al abismo, este, te devuelve la mirada |
![]() |
| Herramientas | |
| 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 |
|