Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 10-03-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
No es por competir, pero la verdad que me daba mucha pena echar mi código al basurero;

Código Delphi [-]
function GetDimensions(lpFileName: PChar): TSize;
var hFile: Integer; Value, FileSize: Cardinal; Chunk: Word;
begin
 Result := TSize(Point(0, 0));
 hFile := _lopen(lpFileName, OF_READ);
 if hFile = -1 then Exit;
 _lread(hFile, @Value, 4);
 if Word(Value) = $4D42{BM} then
  begin
   _llseek(hFile, 18, FILE_BEGIN);
   _lread(hFile, @Result, SizeOf(Result));
  end
 else
  begin
   if Value = $E0FFD8FF{JPEG} then
    begin
     _lread(hFile, @Chunk, 2);
     _lread(hFile, @Value, 4);
     if Value = $4649464A{JFIF} then
      begin
       FileSize := GetFileSize(hFile, nil);
       Value := 4 + Swap(Chunk);
       while Value < FileSize do
        begin
         _llseek(hFile, Value, FILE_BEGIN);
         Inc(Value, 2); _lread(hFile, @Chunk, 2);
         if Lo(Chunk) <> $FF then Exit;
         if Hi(Chunk) = $C0 then
          begin
           _llseek(hFile, Value + 3, FILE_BEGIN);
           _lread(hFile, @Chunk, 2); Result.cy := Swap(Chunk);
           _lread(hFile, @Chunk, 2); Result.cx := Swap(Chunk);
           Break;
          end
         else
          begin
           _lread(hFile, @Chunk, 4);
           Inc(Value, Swap(Chunk));
          end;
        end;
      end;
    end;
  end;
 CloseHandle(hFile);
end;

Uso;

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var Size: TSize;
begin
 if OpenDialog1.Execute then
  begin
   Size := GetDimensions(PChar(OpenDialog1.FileName));
   ShowMessage(IntToStr(Size.cx) + 'x' + IntToStr(Size.cy));
  end;
end;

PD: Nadamas por curiosidad, cual es la velocidad de mi code?

Saludos
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Maxima valor de un nuevo registro Arturo_ Tablas planas 8 23-07-2007 22:14:32
Cantidad maxima de hilos ?? marceloalegre Varios 2 18-04-2007 17:27:46
imprimir imagenes en maxima calidad alain Impresión 3 22-06-2006 17:05:50
Longitud máxima para una consulta SQL moesis Conexión con bases de datos 3 17-08-2004 23:54:43
Longitud maxima integer cinecito Varios 10 12-05-2004 03:06:22


La franja horaria es GMT +2. Ahora son las 23:36:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi