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 29-01-2010
Davidcfres Davidcfres is offline
Miembro
 
Registrado: ago 2007
Ubicación: Francia
Posts: 10
Poder: 0
Davidcfres Va por buen camino
Lightbulb Con GDI+

Hola,

Es muy simple con GDI+ :

Código Delphi [-]
procedure TForm1.Test1;
var
  Image: TGPImage;
  encoderClsid: TGUID;
  strMimeType : string;
begin
  Image:= TGPImage.Create('Apple.GIF');
  strMimeType := 'image/jpeg';
  GetEncoderClsid(strMimeType, encoderCLSID);
  Image.Save('test.jpg', encoderClsid);
  Image.free;
end;

puedes cargar la imagen desde la cadena con un MemoryStream

Código Delphi [-]
var
  MyStream : TMemoryStream;

...

  MyStream := TMemoryStream.Create;
  MyStream.Read( MyStrCadena, length(MyStrCadena) );
  Image.FromStream( MyStream );
  MyStream.Free;

con respecto al formataje de las cadenas en Delphi,
se puede que debes adaptar el MyStream.read

Código Delphi [-]
MyStream.Read( MyStrCadena{ o MyStrCadena+1 (AnsiChar)}, length(MyStrCadena) );

lo seguro, con un Array of char no tendras ningun problema.

algo Asi :

Código Delphi [-]
MyArray : Array [0..] of char;
MyStr : string;

...

FillChar( MyArray, length(MyArray),0);
CopyMemory(@MyArray[0], @MyStr[1], length(MyStr) );
...
MyStream.Read( @MyArray[0], length(MyArray));



David
Davidcfres at hotmail.fr

Je sais, je suis français, mais personne n'est parfait.

Última edición por Davidcfres fecha: 29-01-2010 a las 11:33:13. Razón: mas
Responder Con Cita
  #2  
Antiguo 29-01-2010
Avatar de Gimli
Gimli Gimli is offline
Miembro
 
Registrado: may 2008
Ubicación: Castilla La Mancha
Posts: 40
Poder: 0
Gimli Va por buen camino
Donde puedo conseguir GDI+ ?, por mas que lo busco no lo encuentro...
me puedes facilitar un enlace o enviarmelo??, que ando un poco apurado...

Gracias

PD:
menos mal que me respondiste por que estaba intentando esto de aqui abajo y me decia que el tif tenia compresion y no dejaba abrirlo, por que GraphicEx no permite tif con compresion....


Código Delphi [-]
unit Unit1;

interface

uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    ExtCtrls, FileCtrl, StdCtrls, ComCtrls, ToolWin, Menus, DBCtrls, Db,
    ImgList, GraphicEx, pvtables, btvtables;

type
    TForm1 = class(TForm)
    Button1: TButton;
    imgImagen: TImage;
    DataSource1: TDataSource;
    PvTable1: TPvTable;
    PvTable1IMAGEN: TBlobField;
        procedure Button1Click(Sender: TObject);
    private
        { Private declarations }
    public
        { Public declarations }
    end;

var
    Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var
Tif : TTIFFGraphic;
Corriente : TMemoryStream;
Buffer : Word;
ImagenValida : Boolean;
begin
 pvtable1.open;

 ImagenValida := True;
 imgImagen.Picture.Graphic := Nil;
 If pvtable1IMAGEN.BlobSize > 0 Then
 Begin
    Corriente := TMemoryStream.Create;
    Try
     pvtable1IMAGEN.SaveToStream(Corriente);
     Corriente.Seek(0,soFromBeginning);
     If Corriente.Read(Buffer, 2) > 0 Then
     Begin
        Corriente.Seek(0,soFromBeginning);
        If (Buffer = $2020) Or (Buffer = $3A44) Or (Buffer = $4956) Then
        Begin
         imgImagen.Visible := False;
        End
        Else
        Begin
         imgImagen.Visible := True;
        End;
        Case Buffer Of
         $4D42 : imgImagen.Picture.Bitmap.LoadFromStream(Corriente); //Imagen BMP
         $0000 : imgImagen.Picture.Icon.LoadFromStream(Corriente); //Imagen ICO
         $0001 : imgImagen.Picture.Metafile.LoadFromStream(Corriente); //Imagen EMF
         $CDD7 : imgImagen.Picture.Metafile.LoadFromStream(Corriente); //Imagen WMF
         $4949 : //Imagen TIF, TIFF
         Begin
             Tif := TTIFFGraphic.Create;
             Tif.LoadFromStream(Corriente);
             imgImagen.Picture.Assign(Tif);
             Tif.Free;
         End;
    Begin
    imgImagen.Picture.Graphic := Nil;
    ImagenValida := False;
    End;
 End;
 End;
 Finally
    Corriente.Free;
 End;
 End;
end;

end.
Responder Con Cita
  #3  
Antiguo 29-01-2010
Davidcfres Davidcfres is offline
Miembro
 
Registrado: ago 2007
Ubicación: Francia
Posts: 10
Poder: 0
Davidcfres Va por buen camino
Wink

www progdigy com/ files/ gdiplus.zip

msdn.microsoft.com/ en-us/ library/ ms533798(VS.85).aspx

dame un momento para leer tu ultimo post.

David
Responder Con Cita
  #4  
Antiguo 29-01-2010
Avatar de Gimli
Gimli Gimli is offline
Miembro
 
Registrado: may 2008
Ubicación: Castilla La Mancha
Posts: 40
Poder: 0
Gimli Va por buen camino
¿Conoceis algun componente estilo dbImage que enlace con la base de datos para mostrar una imagen TIF contenida en un campo blob ??
La imagen esta en formato INTEL little endian

Gracias
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
Imagen A Bd Milperrimo Varios 1 19-12-2007 00:09:32
dll con una imagen Cañones Varios 6 15-11-2007 14:34:28
imagen gif salvanano Gráficos 4 10-05-2007 17:11:22
Imagen en BDA majosf Conexión con bases de datos 1 13-12-2005 16:17:25
Imagen en SQL ramonibk Varios 2 18-02-2005 17:07:50


La franja horaria es GMT +2. Ahora son las 17:48:36.


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