Club Delphi  
    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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-09-2008
madiazg madiazg is offline
Miembro
 
Registrado: sep 2005
Ubicación: Canarias
Posts: 120
Poder: 19
madiazg Va por buen camino
Modificación del Truco 467

Hola a todos,
estoy usando el Truco 467 para mostrar en un ListView los thumbnail de unas imágenes. La dificultad que tengo es que el color de fondo de estos thumbnail es blanco y necesito que sea de otro color.
¿Hay alguna forma de modificar el color de fondo de los thumbnail?

Saludos...
Miguel Angel
imagen3d.site88.net/
Responder Con Cita
  #2  
Antiguo 16-09-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Lo quieres porque necesitas que sea transparete?
Si es así:

Del Help de Delphi6:
Cita:
TBitmap.TransparentColor
Determines which color of the bitmap is to be transparent when the bitmap is drawn.

property TransparentColor: TColor;

Description

Use TransparentColor to determine how to draw the bitmap transparently. When the TransparentMode property is set to tmAuto (default), TransparentColor returns the color of the first pixel in the bitmap image data. For "bottom-up" bitmaps, the first pixel is the bottom leftmost pixel shown onscreen. For "top-down" bitmaps (less common), the first pixel is in the top left corner shown onscreen.

If TransparentColor is assigned, the TransparentMode is automatically set to tmFixed so that the new transparent color can be used later. If you want TransparentColor to disregard any assignments and return the bottom leftmost pixel color again, set TransparentMode to tmAuto.
Responder Con Cita
  #3  
Antiguo 16-09-2008
madiazg madiazg is offline
Miembro
 
Registrado: sep 2005
Ubicación: Canarias
Posts: 120
Poder: 19
madiazg Va por buen camino
Hola,
gracias por contestar, aunque esta solución tiene una pega. Si coloco el fondo blanco como transparente, todas las partes del thumbnail (fotografía) de color blanco también serían transparentes con lo que adoptaría el color del fondo (en mi caso oscuro). He probado con una fotos con cielo quemado y queda faltal.
El motivo es simplemente estético. El listview es de color oscuro a tono con el resto del form.

Saludos...
Miguel Angel
Responder Con Cita
  #4  
Antiguo 16-09-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
En este momento no tengo Delphi para probarlo, pero puede ser que el color transparete sea el negro ($000000).

De no ser así, habría que averiguar como define Windows el color transparente.

Creo que a partir de WinNT el color transparete es nego. Antes era le blanco.
Pruébalo y nos cuentas como te fue.
Responder Con Cita
  #5  
Antiguo 17-09-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Una de mis principales frustraciones antes de escribir dicho truco era mi incapacidad de reconocer formatos estándares que para Delphi no lo eran así (png, gif, jpeg, etc.) y con mi clásico desacuerdo al uso de componentes debía encontrar una solución. Una vez probada la interfaz IExtractImage noté que también podía crear vistas en miniatura de una amplia gama de formatos no gráficos a una velocidad considerablemente superior a otras pruebas realizadas, el problema que describes me pareció algo secundario y obviamente lo deje pasar.

Ahora no tengo en mente alguna propiedad de alguna interfaz que pueda ser de utilidad para el caso, pero suponiendo que estas utilizando las vistas en miniatura en tu proyecto de gráficos te doy una alternativa igualmente nativa; prueba el siguiente código utilizando ésta unidad y me cuentas

Código Delphi [-]
...
 
uses Viewer;
 
{$r *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var Image: TBitmap;
begin
 Image := GetImage('ClubDelphi.png'{, Tamaño del Thumbnail [opcional]}{, Color de fondo [opcional]});
 if Assigned(Image) then
  begin
   Image1.Picture.Assign(Image);
   Image.Destroy;
  end;
end;

Notarás que no necesitamos Delphi2009 o un montón de componentes para reconocer un buen numero de formatos de imágenes

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #6  
Antiguo 17-09-2008
madiazg madiazg is offline
Miembro
 
Registrado: sep 2005
Ubicación: Canarias
Posts: 120
Poder: 19
madiazg Va por buen camino
Muchas gracias cHackAll. Funciona perfectamente.
Saludos...
Miguel Angel
Responder Con Cita
  #7  
Antiguo 13-01-2009
capo979 capo979 is offline
Miembro
 
Registrado: abr 2007
Posts: 87
Poder: 17
capo979 Va por buen camino
Estoy probando el truco 467 y donde dice

Código Delphi [-]
type
 IExtractImage = interface ['{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}'] // http://msdn2.microsoft.com/en-us/lib...48(VS.85).aspx
  function GetLocation(pszPathBuffer: PWideChar    {LPWSTR}; cchMax: DWORD; var pdwPriority: DWORD; const prgSize: SIZE; dwRecClrDepth: DWORD; var pdwFlags: DWORD): HRESULT; stdcall;
  function Extract(var phBmpImage: HBITMAP): HRESULT; stdcall;
 end;

me salta el error

undeclared identifier HBITMAP

y en el uses le pongo la unidad Graphics

alguién me puede ayudar porque no lo puedo probar

muchas gracias

saludos
Responder Con Cita
  #8  
Antiguo 13-01-2009
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Código Delphi [-]
..., Windows, ...
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #9  
Antiguo 14-01-2009
capo979 capo979 is offline
Miembro
 
Registrado: abr 2007
Posts: 87
Poder: 17
capo979 Va por buen camino
Cuando pongo el siguiente código

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
 Image1.Picture.Assign(GetThumbnail('c:\windows\web\wallpaper', 'ascent.jpg', 96, 96));
end;

En Image1 no aparece nada no se ve nada

que puede ser

Saludos
Responder Con Cita
  #10  
Antiguo 13-04-2009
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Intentando escribir la unidad Viewer en BCB6, obtuve los errores E2268, E2015 y W8022. Aparte de ello no encontré por ningún lado la librería necesaria con las APIs importadas desde GDI+ para que Viewer funcione.

Cita:
Empezado por vicmac3009
Que tal:

vi un post, http://chackall.clubdelphi.com/Viewer.pas, y quisiera saber si fuera posible que me explicaras o pudieras ayudar a traducir el código a c++...
Descarga el archivo adjunto.

Considerando que BCB6 es incapaz de trabajar con GDI+ sin tener que modificar sus cabezales; he importado a Viewer.pas en un proyecto de BCB y he añadido la librería faltante con las APIs de GDI+.

Nota; vicmac3009 siempre que tengas alguna duda escríbela en el hilo/subforo correspondiente para que cualquier miembro te ayude y para que la respuesta ayude a otros miembros.

Saludos
Archivos Adjuntos
Tipo de Archivo: zip Viewer.BCB6.zip (22,6 KB, 36 visitas)
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
Respuesta


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
RtfToTxt (Truco 484) rauros OOP 7 12-09-2008 02:49:50
Truco 232 Propuesto por Dec <Detalle> mrnovice OOP 3 02-09-2008 17:06:11
buscando truco con imagelist droguerman OOP 1 13-01-2008 20:12:36
Truco de trucomania JCR Internet 1 23-05-2004 09:27:40


La franja horaria es GMT +2. Ahora son las 03:35:56.


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