Avatar billede Slettet bruger
02. maj 2001 - 21:26 Der er 7 kommentarer og
2 løsninger

32 bit farver

Hvordan tegner man med 32 bit farve
og hvordan læser man dem.
helst kode men jeg kan bruge et komponent.

jeg vil gerne vide det samme for 16 bit 8 bit. men det er ikke nødvendigt. måske ogse andre skalaer.

Mvh. Simon
Avatar billede Slettet bruger
02. maj 2001 - 21:29 #1
Hvis det er en hjælp er det disse farver der er grundfarve i 32 bit.
Cyan, Magenta, Gul og Sort

Mvh. Simon
Avatar billede borrisholt Novice
02. maj 2001 - 21:33 #2
Avatar billede Slettet bruger
02. maj 2001 - 21:36 #3
Hvilket skal jeg bruge.

Mvh. Simon
Avatar billede borrisholt Novice
03. maj 2001 - 10:54 #4
Avatar billede Slettet bruger
04. maj 2001 - 21:05 #5
Det der står der kan jeg ikke bruge til noget.
det er stadig 24 bits farver med noget ekstra.
Det jeg gerne vil have er for eksempel et komponent hvori man kan tegne med 32bits farver.

Noget kan bruges det får du point for.

Mvh. Simon
Avatar billede borrisholt Novice
09. maj 2001 - 10:08 #6
prøv så den her :

unit JBitmap;

interface

uses windows;

type

TJColor = record
          blue,green,red,unused : byte;
        end;

TPixels = array[0..0] of TJColor;
PPixels = ^TPixels;

TJBitMap = class
            private
              handle : THandle;
              fpixels : PPixels;
              fheight, fwidth : integer;
              JmpTbl : array [ 0..10000 ] of integer;
              function GetPixel(x, y: integer): TJColor;
              procedure SetPixel(x, y: integer; const Value: TJColor);
            public
              DC : hDC;
              Scanlines : array [ 0..10000] of pointer;
              Constructor Create (width, height : integer );
              procedure Draw ( DestDC : hDC; x,y : integer);
              procedure StretchDraw ( DestDC : hDC; x1,y1,x2,y2 : integer);

              property pixels [ x,y : integer ] : TJColor read GetPixel write SetPixel;
              property width:integer read fwidth;
              property height:integer read fheight;
          end;

implementation

{ TJBitMap }

constructor TJBitMap.Create (width, height : integer );
var
  bmInfo : TBitmapInfo;
  bmheader : TBitmapInfoHeader;
  p : pointer;
  x : integer;
begin
  inherited create;
  fWidth  := width;
  fHeight := height;

  with bmHeader do
  begin
    biSize := SizeOf(bmHeader);
    biWidth := Width;
    biHeight := Height;
    biPlanes := 1;
    biBitCount := 32;
    biCompression := BI_RGB;
  end;

  bmInfo.bmiHeader := bmHeader;
  Handle := CreateDIBSection(0, bmInfo, DIB_RGB_COLORS, p, 0,  0);
  fPixels := p;
  DC:=CreateCompatibleDC(0);
  SelectObject(DC,Handle);
  for x := 0 to height-1 do
    JmpTbl [ x ] := x*width;
  for x := 0 to height-1 do
    scanlines [x] := @fPixels[x * width];
end;

procedure TJBitMap.Draw(DestDC: hDC; x, y: integer);
begin
  BitBlt( DestDC,x,y,fWidth,fHeight,DC,0,0,SRCCOPY);
end;

function TJBitMap.GetPixel(x, y: integer): TJColor;
begin
  result := fpixels [ y * fwidth + x ];
end;

procedure TJBitMap.SetPixel(x, y: integer; const Value: TJColor);
begin
  fpixels [ JmpTbl[y] + x ] := Value;
end;

procedure TJBitMap.StretchDraw(DestDC: hDC; x1, y1, x2, y2: integer);
begin
  StretchBlt( DestDC,x1,y1,x2-x1+1,y2-y1+1,DC,0,0,fwidth,fheight,SRCCOPY);
end;

end.


Jens B
Avatar billede Slettet bruger
25. maj 2001 - 22:28 #7
Jeg undskylder mit fravær.
Det du har skrevet giver kun mulighed for at tegne med RGB på en anden måde.

Hvordan Tegner jeg CMYK.

Mvh. Simon
Avatar billede Slettet bruger
04. juni 2001 - 02:45 #8
glem det det kan inen tydeligvis svare på og eksperten.dk har brokket sig over at jeg ikke har aksepteret at der er svaret.

Mvh. Simon
Avatar billede Slettet bruger
04. juni 2001 - 02:47 #9
hvordan bliver 50 point til 125
og 150 til 75.
kan jeg få de sidste 75 tilbage.

Mvh. Simon
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester