Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Pixel mit bestimmter Farbe erstellen (https://www.delphipraxis.net/99033-pixel-mit-bestimmter-farbe-erstellen.html)

cRayZo 5. Sep 2007 20:29


Pixel mit bestimmter Farbe erstellen
 
Hi wie kann ich einen Farbcode (zB. 6908265) in ein 9pxl großes Bild oder wie auch immer schreiben, sodass, wenn ich zb 16 Farbcodes habe, die kleinen Bilder in der Reihenfolge, wie ich sie eingegeben habe, zu einem Muster zusammenfügen (zB. 4x4 muster)

wär über ne antwort echt froh :thumb:

SirThornberry 5. Sep 2007 20:37

Re: Pixel mit bestimmter Farbe erstellen
 
ganz einfach:
Delphi-Quellcode:
Canvas.Brush.Color := 6908265;
Canvas.FillRect(Rect(0, 0, 9, 9));

cRayZo 5. Sep 2007 21:30

Re: Pixel mit bestimmter Farbe erstellen
 
okay danke, klappt. Aber wie kann ich ein Muster erstellen, das größer ist, als das Fenster?
Weil außerhalb des Fensters wird leider nicht gerendert

mfg cRayZo

mkinzler 5. Sep 2007 21:31

Re: Pixel mit bestimmter Farbe erstellen
 
Nimm halt den Canvas eines Bildes.

cRayZo 6. Sep 2007 13:40

Re: Pixel mit bestimmter Farbe erstellen
 
also ich habs jetzt so gemacht:
ein Bild vom screen machen und in n Bild einfügen, aber das Bild ist komplett weiß, was ist das Problem? beim Hintergrund hats geklappt.

Delphi-Quellcode:
var
  dc: hDc;
  s:string;
  i, i2: integer;
  x, xx,y, Filterx, FilterY, Teil :integer;
begin
x:=1; y:=1;

FilterX:=strtoint(Edit1.Text); FilterY:=strtoint(Edit2.Text); Teil:=strtoint(Edit3.Text);

for i2:=1 to 800 div FilterY do begin
for i:=1 to 1280 div FilterX do begin
  dc := GetDC(0);
  image1.Canvas.Brush.Color:= GetPixel(dc, x, y);
  ReleaseDC(0, dc);
  image1.Canvas.FillRect(Rect(x div Teil ,y div Teil,x div Teil+1,y div Teil+1));                    //FillRect
  x:=x+FilterX;
  end;
  x:=1; y:=y+FilterY;
end;
end;
so wie beim untenstehenden hats geklappt..-->
Delphi-Quellcode:
var
  dc: hDc;
  s:string;
  i, i2: integer;
  x, xx,y, Filterx, FilterY, Teil :integer;
begin
x:=1; y:=1;

FilterX:=strtoint(Edit1.Text); FilterY:=strtoint(Edit2.Text); Teil:=strtoint(Edit3.Text);

for i2:=1 to 800 div FilterY do begin
for i:=1 to 1280 div FilterX do begin
  dc := GetDC(0);
  Canvas.Brush.Color:= GetPixel(dc, x, y);
  ReleaseDC(0, dc);
  Canvas.FillRect(Rect(x div Teil ,y div Teil,x div Teil+1,y div Teil+1));
  x:=x+FilterX;
  end;
  x:=1; y:=y+FilterY;
end;
end;
was ist das Problem???


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz