GARANTIR DESCONTO

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:

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

Gabriela

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar