Fórum Paleta de cores num bitmap... como trabalhar? #267158
02/02/2005
0
Estou tentando fazer alguns filtros de imagens no delphi. Um filtro que achei interessante num demo em c++ se chama Pseudo Colors, e uma das funções que ele utiliza é essa:
Pelo que eu entendi, ele nao altera a cor pixel a pixel, mas mexe diretamente na paleta de cores. Só que eu não faço a minima ideia de como trabalhar com isso no Delphi.
Qualquer dica será bem-vinda.
E se alguém tiver um código desse filtro (pseudo-colors) em delphi, tb será otimo.
Gabriela.
void CxImage::HuePalette(float correction)
{
if (head.biClrUsed==0) return;
for(DWORD j=0; j<head.biClrUsed; j++){
BYTE i=(BYTE)(j*correction*(255/(head.biClrUsed-1)));
RGBQUAD hsl={120,240,i,0};
SetPaletteColor((BYTE)j,HSLtoRGB(hsl));
}
}
void CxImage::SetPaletteColor(BYTE idx, RGBQUAD c)
{
if ((pDib)&&(head.biClrUsed)){
BYTE* iDst = (BYTE*)(pDib) + sizeof(BITMAPINFOHEADER);
if (idx<head.biClrUsed){
long ldx=idx*sizeof(RGBQUAD);
iDst[ldx++] = (BYTE) c.rgbBlue;
iDst[ldx++] = (BYTE) c.rgbGreen;
iDst[ldx++] = (BYTE) c.rgbRed;
iDst[ldx] = (BYTE) c.rgbReserved;
info.last_c_isvalid = false;
}
}
}
Pelo que eu entendi, ele nao altera a cor pixel a pixel, mas mexe diretamente na paleta de cores. Só que eu não faço a minima ideia de como trabalhar com isso no Delphi.
Qualquer dica será bem-vinda.
E se alguém tiver um código desse filtro (pseudo-colors) em delphi, tb será otimo.
Gabriela.
Gabriela
Curtir tópico
+ 0
Responder
Posts
02/02/2005
Massuda
Talvez seja útil para você: no site [url=http://www.efg2.com/Lab/]efg´s Computer Lab[/url] tem [url=http://www.efg2.com/Lab/Library/Delphi/Graphics/Color.htm]esta página[/url] com algoritmos envolvendo cores. Alguns links estão quebrados, mas no geral as informações de lá tem sido úteis para mim.
Responder
Gostei + 0
02/02/2005
Marcelo Saviski
Na pasta Demos ou Help, numa das duas tem um exemplo que trabalha com palettes num Bitmap
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)