Pixelformat + tBITMAP 24 bity na 1 bit

0

no wlasnie jak zamienic jakas 24 bitowke na 1 bitowke i prosze bez kodu bmp.pixelfromat := pf1bit; bo wykastruje i udusze :u

0

Z każdego piksela wyliczaj sobie skalę szarości (0-255). Jeśli jest powyżej jakiejś granicy to masz piksel o wartości 1, poniżej to 0. Niektóry robią jeszcze inaczej: (0-63) czarny, (64-127) kropkowany czarno-biały, (128-191) kropkowany biało-czarny, (192-255) biały. Ostatecznie sklej to i masz.

Co ci przeszkadza

bmp.pixelformat := pf1bit;

? Łatwe, szybkie, poprawne.

0

oo kocham cie :0 :D:D:D ta linijka robi mi bitmape 0 na 0 :0

0

Co rozumiesz przez 0 na 0? A może po prostu nie umiesz się tym posługiwać? Tu masz przykład:

var i,j:integer;
    q:TRGBQuad;

begin
{Jeśli nie chcesz mieć bitmapy zamienionej wg. prostej skali szarości, najpierw wykonaj poniższą, ręczną zamianę kolorów - polecam użyć ScalLine; wzór jest tu tylko przykładowy}
for i:=0 to Image1.Picture.Bitmap.Width-1 do
  for j:=0 to Image1.Picture.Bitmap.Height-1 do
    begin
    q:=TRGBQuad(Image1.Picture.Bitmap.Canvas.Pixels[i,j]);
    if (q.rgbBlue+q.rgbGreen+q.rgbRed) div 3<128 then
        Image1.Picture.Bitmap.Canvas.Pixels[i,j]:=clWhite
    else
        Image1.Picture.Bitmap.Canvas.Pixels[i,j]:=clBlack;
    end;

{Standardowa zamiana}
Image1.Picture.Bitmap.Monochrome:=True;
Image1.Picture.Bitmap.PixelFormat:=pf1bit;
end;
0

Image1.Picture.Bitmap.PixelFormat:=pf1bit;

tak dokladnie wpisalem i myslalem ze to sprawe zalatwi nie wiezialem jednak kiedy mam uyzc bialego, a kiedy czarnego, prosze nie osmieszaj mnie ani siebie

0

Po prostu zastrzegłeś w 1 poście, że chcesz coś zrobić, przekreślając na starcie najprostszą metodę. Tak się nie robi :/ Ale nie ważne.

Opcja pf1bit obcina tak naprawdę wcześniej stworzoną paletę do 2 barw. Jeśli wcześniej nie zmienisz obrazu na wyłącznie czarno-biały, może się okazać, że stworzona paleta będzie miała na pierwszych 2 pozycjach na przykład kolory: czarny i prawie czarny, albo powiedzmy czarny i zielony. Taki efekt nie jest raczej pożądany. Stąd lepiej ręcznie zapewnić w obrazie istnienie tylko czarnych i białych pikseli, bo wtedy na pewno znajdą się w palecie. Paleta jest budowana tak, że pierwsze kolory to te, które występują w obrazie po zmianie do palety 256 kolorów, a pozostałe - jeśli są jakieś wolne miejsca w palecie - są nieokreślone, zazwyczaj czarne. Warto też zwrócić uwagę, że zmiana palety po ustawieniu pf1bit też nie wiele da, bo nie gwarantuje, że na pierwszych dwóch pozycjach są kolory skrajne obrazu.

Mam nadzieję, że ta odpowiedź Cię satysfakcjonuje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1