2012-08-01 31 views

回答

6
procedure TForm1.GenerateImageWithRandomColors; 
var 
    I, J: Integer; 
    ColorHEX: string; 
    Bitmap: TBitmap; 
    JpegImg: TJpegImage; 
begin 
    Randomize; 

    Bitmap := TBitmap.Create; 
    try   
    Bitmap.Width := 100; 
    Bitmap.Height := 100; 
    Bitmap.PixelFormat := pf24bit; 

    for I := 0 to Pred(Bitmap.Width) do 
    begin 
     for J := 0 to Pred(Bitmap.Height) do 
     begin 
     Bitmap.Canvas.Pixels[I, J] := RGB(Random(256), 
      Random(256), 
      Random(256)); 

     // get the HEX value of color and do something with it 
     ColorHEX := ColorToHex(Bitmap.Canvas.Pixels[I, J]); 
     end; 
    end; 

    JpegImg := TJpegImage.Create; 
    try 
     JpegImg.Assign(Bitmap); 
     JpegImg.SaveToFile('test.jpg'); 
    finally 
     JpegImg.Free; 
    end; 

    finally 
    Bitmap.Free; 
    end; 
end; 

function TForm1.ColorToHex(Color : TColor): string; 
begin 
    Result := 
    IntToHex(GetRValue(Color), 2) + 
    IntToHex(GetGValue(Color), 2) + 
    IntToHex(GetBValue(Color), 2); 
end; 
+0

謝謝。我加了var:jpegimg:tjpegimage;現在沒問題,我試了一下。 – 2012-08-01 20:09:32

+0

@keremaybeyaz我編輯了這篇文章。如果我的回答很有用,請將其標記爲正確。 – 2012-08-01 20:11:52

+0

是的,它的工作謝謝agaın.. – 2012-08-01 20:12:00