Ver Mensaje Individual
  #8  
Antiguo 28-03-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Jesus.
Cita:
Empezado por jesusgandia1966 Ver Mensaje
Esta función no obtiene la información de si la imagen es de 32, 24, 16 o 8 bits.
El valor obtenido no corresponde con lo mencionado en el post.
Pueden comprobarlo ustedes mismos.
Deje en un post mas arriba lo que quiero y lo que quiero es consultar un fichero JPG directamente en el archivo y comprobar si es de 32 bits, 24, 16 o 8 bits.
Tal como cuando hace Windows con las propiedades del fichero, que si es de IMAGEN muestra dichos valores de forma muy directa.
No había leido este mensaje.

Te comento que en mis pruebas, la información que muestra la función traducida, se corresponde con la obtenida en el explorador de windows en las propiedades del archivo.

De todos modos se me ocurrió que también podrías probar de este modo:
Código PHP:
TPixelFormat getColorbit(const char* &fileName) {
  
TPixelFormat pf;

  
Graphics::TBitmap *bmp = new Graphics::TBitmap;
  
TJPEGImage *jpg = new TJPEGImage;
  
jpg->LoadFromFile(fileName);
  
bmp->Assign(jpg);
  
pf bmp->PixelFormat;
  
delete jpg;
  
delete bmp;

  return 
pf;

Ej. de llamada:
Código PHP:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if (
OpenDialog1->Execute())
    switch (
getColorbit(OpenDialog1->FileName.c_str())) {
      case 
pfDeviceShowMessage("Device-dependant bitmap");break;
      case 
pf1bit  ShowMessage("One bit per pixel");break;
      case 
pf4bit  ShowMessage("Uses a 16-color palette");break;
      case 
pf8bit  ShowMessage("Uses a 256color palette"); break;
      case 
pf15bit ShowMessage("uses 15 bits per pixel (RGB compression)"); break;
      case 
pf16bit ShowMessage("uses 16 bits per pixel (bitfield compression)"); break;
      case 
pf24bit ShowMessage("uses 24 bits per pixel"); break;
      case 
pf32bit ShowMessage("uses 32 bits per pixel (RGB compression)"); break;
      case 
pfCustomShowMessage("TBitmap does not support pfCustom"); break;
    }

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita