Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-03-2009
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 18
BlackDaemon Va por buen camino
Hola

Trabajo con jpgs y necesito que la salida sea este mismo formato

saludos!
Responder Con Cita
  #2  
Antiguo 13-03-2009
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Aparte de haber visto este hilo y tu post te respondo;

Si tenemos 2 Gb. de memoria disponible alcanzaremos los 26000 pixeles RGB cuadrados, pero llegar a los 60000 requiere 10 Gb. de memoria que luego debe ser comprimida para obtener una imagen en formato portable (como el que exiges). Para poder convertirla debe estar en algún momento en memoria porque casi no existen conversores de formatos de imagen que trabajen sobre archivos.

Considerando que pocas PCs tienen dicha capacidad podríamos crear la imagen directamente en un archivo (.BMP) de 10 Gb. (para los 60000px cuadrados) y luego ver la forma de comprimirlo, sin embargo, el formato BMP en su cabezal tiene un campo de 32 bits que contiene el tamaño del archivo, lo que significa que el tamaño máximo de un Bitmap es de 4 Gb., lo que nos limita a un Scan Line menos que 64 Kilo pixeles cuadrados utilizando 256 colores, pero si queremos utilizar el RGB al que estamos acostumbrados solo podremos tener una imagen de 37837 pixeles cuadrados (dicha dimensión también será el limite en un SO de 32 bits)

Código Delphi [-]
program BigBMP; uses Windows;

const
 Width = 37837;
 Height = 37837;

var
 Header: record
  FileHeader: TBitmapFileHeader;
  InfoHeader: TBitmapInfoHeader;
 end = (FileHeader: (bfType: $4D42 {BM}; bfSize: $FFFF367B {Width * Height * 3} + SizeOf(Header); bfOffBits: SizeOf(Header));
        InfoHeader: (biSize: SizeOf(TBitmapInfoHeader); biWidth: Width; biHeight: Height; biPlanes: 1; biBitCount: 8 * 3 {RGB}; biSizeImage: $FFFF367B));
 hFile, Size, Index: Integer;
 lpScanLine: PChar;

begin
 hFile := _lcreat('image.bmp', 0);
 _lwrite(hFile, @Header, SizeOf(Header));
 Size := Width * (Header.InfoHeader.biBitCount div 8);
 lpScanLine := Ptr(LocalAlloc(LMEM_ZEROINIT, Size));
 for Index := 1 to Height do
  _lwrite(hFile, lpScanLine, Size);
 LocalFree(Cardinal(lpScanLine));
 _lclose(hFile);
end.

Trabajando de la anterior forma, es posible ir dibujando en el BMP por cuadrantes, pero de cualquier forma no podrás abrir ni convertir el archivo… para qué hacerlo si en una resolución de monitor estándar 1600px es una dimensión grande 60000px es una utopía.

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
Respuesta



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
TImage, me da problemas al cargar grandes imagenes. MAXIUM Gráficos 12 11-03-2009 17:42:50
Cargar Imagenes grandes en un Timage Rapidamente angelmsf Gráficos 2 27-08-2008 03:35:04
Duda Arranque Web con Imágenes grandes Deiv HTML, Javascript y otros 4 26-12-2007 17:03:48
Imagenes mas grandes en un TreeView hmrvivas OOP 1 13-07-2007 06:02:43
Visualizar imagenes grandes fjcg02 Gráficos 2 20-11-2006 16:33:36


La franja horaria es GMT +2. Ahora son las 06:59:19.


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