AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Fernsehrauschen zeichnen?
Thema durchsuchen
Ansicht
Themen-Optionen

Fernsehrauschen zeichnen?

Ein Thema von StefanG · begonnen am 23. Mai 2006 · letzter Beitrag vom 23. Mai 2006
Antwort Antwort
Seite 2 von 3     12 3      
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#11

Re: Fernsehrauschen zeichnen?

  Alt 23. Mai 2006, 11:14
Zitat von H4ndy:
Threads sind glaub ich auch direkt mal Spatzen mit Kanonen abschießen
Höstens einer würde hier passen, damit das Hauptprogramm nicht vom Zeichenvorgang
ausgebremst wird.
Ich habs Grad nachprogrammiert man merkt schon bei einem kleinen Bild das threads sinnvoll wären.

Zitat von H4ndy:
Aso: Du erzeugst übrigends bunten Schnee
Du musst für RGB dreimal den selben Wert benutzen, damit ein Grauwert entsteht.
Ich mag Bunten Schnee
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#12

Re: Fernsehrauschen zeichnen?

  Alt 23. Mai 2006, 11:18
Zitat von pacman1986:
Ich habs Grad nachprogrammiert man merkt schon bei einem kleinen Bild das threads sinnvoll wären.
Gut, dass das direkt mal getestet wurde =)

Zitat von pacman1986:
Ich mag Bunten Schnee
Denk dran: Niemals den gelben essen
Manuel
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#13

Re: Fernsehrauschen zeichnen?

  Alt 23. Mai 2006, 11:21
Zitat von H4ndy:
Gut, dass das direkt mal getestet wurde =)

Zitat von H4ndy:
Denk dran: Niemals den gelben essen
Warum ?
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#14

Re: Fernsehrauschen zeichnen?

  Alt 23. Mai 2006, 11:23
Zitat von pacman1986:
Warum ?
Schonmal deinen Namen in den Schnee geschrieben?
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#15

Re: Fernsehrauschen zeichnen?

  Alt 23. Mai 2006, 11:25

PS: wers noch net bemerkt hat, OT und ironisch
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
StefanG

Registriert seit: 23. Feb 2006
74 Beiträge
 
#16

Re: Fernsehrauschen zeichnen?

  Alt 23. Mai 2006, 13:58
wie macht man das mit threads?

Mehrere erstellen und von da aus dann jeweils einen Timer erstellen? Oo
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#17

Re: Fernsehrauschen zeichnen?

  Alt 23. Mai 2006, 14:02
für Threads gibt es ein Tutorial von Luckie, das findest Du hier http://www.michael-puff.de/dirindex....phi/Tutorials/

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#18

Re: Fernsehrauschen zeichnen?

  Alt 23. Mai 2006, 14:06
Oder du guckst im "Demos" - Ordner deines Delphi. Da müsste auch 'ne Thread - Demo drinne sein.
  Mit Zitat antworten Zitat
StefanG

Registriert seit: 23. Feb 2006
74 Beiträge
 
#19

Re: Fernsehrauschen zeichnen?

  Alt 23. Mai 2006, 15:40
Ok ich habs mal probiert so testweise.

Wenn ich folgendes mache (ohne Threads) :

Delphi-Quellcode:
procedure TForm1.Snow(image: Timage);
var
  i,j,r:integer;
begin
   For i := 1 to Image.Width do
     For j := 1 to Image.height do begin
         r := random(256);
         Image.Canvas.Pixels[i,j] := RGB(r,r,r);
         application.ProcessMessages;
     end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
  Snow(Image);
end;
Ich starte das Programm, und wenn die Form erscheint, dann ist bereits das fertig gezeichnete Bild zu sehen.
Wenn ich jetzt aber ein Thread-Object erstelle :

Delphi-Quellcode:
constructor Tsnow.Create(image: TImage);
begin
  FImage := image;
  inherited Create(False);
end;

procedure Tsnow.Execute;
begin
  Snow(FImage);
end;

procedure Tsnow.SetPixels;
var
  r : Integer;
begin
  r := Random(256);
  FImage.Canvas.Pixels[FX,FY] := RGB(r,r,r)
end;

procedure Tsnow.Snow(image: Timage);
var
  i,j:integer;
begin
   For i := 1 to FImage.Width do
     For j := 1 to FImage.height do begin
         FX := i;
         FY := j;
         Synchronize(SetPixels);
         application.ProcessMessages
     end;
end;
und dieses dann erzeuge mit :

tsnow.Create(Image); dann kann ich schön zugucken, wie Linie für Linie gezeichnet wird und es dauert etwa 20 Sekunden bis das Image gefüllt ist....
Mache ich was falsch?
  Mit Zitat antworten Zitat
Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#20

Re: Fernsehrauschen zeichnen?

  Alt 23. Mai 2006, 15:47
Delphi-Quellcode:
For i := 1 to FImage.Width do
     For j := 1 to FImage.height do begin
         FX := i;
         FY := j;
         Synchronize(SetPixels);
         application.ProcessMessages
     end;
end;
Solltest du besser so schreiben:
Delphi-Quellcode:
For i := 1 to FImage.Width do
     For j := 1 to FImage.height do begin
         FX := i;
         FY := j;
         Synchronize(SetPixels);
     end;
end;
application.ProcessMessages;
Sonst wird Application.ProcessMessages bei jedem (!) Pixel ausgeführt,
was der Geschwindigkeit nicht gerade zuträglich ist

Und wenn du ein Rauschen haben willst solltest du ins Execute schreiben:
Delphi-Quellcode:
while not Terminated do begin
  Snow(FImage);
end;
Dadurch wird Show() solange ausgeführt, bis du deinen Tread beendest/zerstörst.
(Thread.Terminate)
Manuel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz