AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Prozentrechnung

Ein Thema von utd123 · begonnen am 8. Nov 2011 · letzter Beitrag vom 10. Nov 2011
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#1

AW: Prozentrechnung

  Alt 8. Nov 2011, 14:01
Das Programm läuft innerhalb der IDE schneller als außerhalb? Das interessiert mich jetzt aber, kannst Du mal die *.dpr, *.pas und *.dfm als Zip-Archiv anhängen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
utd123

Registriert seit: 3. Nov 2011
Ort: Deutschland
29 Beiträge
 
Delphi 7 Personal
 
#2

AW: Prozentrechnung

  Alt 8. Nov 2011, 14:16
nicht ganz richtig, außerhalb von delphi läufts gar nicht.
habs in der zwischenzeit noch verbessert so das es jetzt alle farben außer schwarz erkennt.
es geht außerdem nur mit bmp dateien.
Angehängte Dateien
Dateityp: rar Dellphi Projecte.rar (343,9 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Prozentrechnung

  Alt 8. Nov 2011, 14:48
kann es sein dass Du mit Laufzeitpaketen kompiliert hast und die bpl's nicht gefunden werden?
Ich habe den Teil der Geschwindigkeit bringt mal kurz ausgetauscht:
Delphi-Quellcode:
type
  pRGBTripleArray = ^TRGBTripleArray;
  TRGBTripleArray = ARRAY[0..$effffff] OF TRGBTriple;


procedure TForm1.BitBtn1Click(Sender: TObject);
var
  x,y:Integer;
  bmp:TBitMap;
  pLine: pRGBTripleArray;
begin
bmp := TBitmap.Create;
bmp.Assign(Image1.Picture.Bitmap);
bmp.PixelFormat := pf24Bit;
try
  //Progress Bar
  ProgressBar1.Max := Image1.Picture.Bitmap.Width +1;
  //Progress Bar Ende

Memo3.lines.Delete(0);
ProgressBar1.position:=0;
  for Y := 0 to bmp.Height - 1 do

  begin
    ProgressBar1.Position := ProgressBar1.Position+1;
    pLine := bmp.ScanLine[Y];
    for x := 0 to bmp.Width -1 do
        begin
          b := pLine[x].rgbtBlue;
          r := pLine[x].rgbtRed;
          g := pLine[x].rgbtGreen;
          z:=(0.299*r)+(0.587*g)+(0.114*b);
          u:=(b-z)*0.493;
          v:=(r-z)*0.877;
            if (z>0) and (z<121)then begin
               // y = 0 - 0.33
               if (u>-112) and (u<16) and (v<157) and (v>33.64)then
                  rot:=rot+1
               else begin
                      if (u<8) and (u>-64) and (v<33.64) and (v>11.21)then
                          rot:=rot+1
                      else begin
                          if (u<112) and (u>16) and (v<157) and (v>100.92)then
                              lila:=lila+1
                          else begin
                                if (u<112) and (u>32) and (v<100.92) and (v>33.64)then
                                    blau:=blau+1
                                else begin
                                    if (u<112) and (u>8) and (v<33.64) and (v>-157)then
                                        blau:=blau+1
                                    else begin
                                        if (u<8) and (u>-8) and (v<11.21) and (v>-157)then
                                            gruen:=gruen+1
                                        else begin
                                            if (u<-8) and (u>-112) and (v<0) and (v>-157)then
                                                gruen:=gruen+1
                                            else begin
                                                if (u<64) and (u>-112) and (v<33.64) and (v>0)then
                                                    gruen:=gruen+1
                                                else begin
                                                    if (u<-8) and (u>64) and (v<11.21) and (v>0)then
                                                        gruen:=gruen+1
                                                    else begin
                                                        if (u<8) and (u>-8) and (v<11.21) and (v>-11.21)then
                                                            schwarz:=schwarz+1
                                                    end;
                                                end;
                                            end;
                                        end;
                                    end;
                                end;
                          end;
                      end;
               end;
            end
            else begin
              if (z>120) and (z<160)then begin
                  //y = 86 - 170
                  if (u<-16) and (u>-112) and (v<112.14) and (v>22.42)then
                      orange:=orange+1
                  else begin
                      if (u<16) and (u>-112) and (v<157) and (v>112.14)then
                          orange:=orange+1
                      else begin
                          if (u<112) and (u>-16) and (v<157) and (v>11.21)then
                              lila:=lila+1
                          else begin
                              if (u<122) and (u>8) and (v<11.21) and (v>-11.21)then
                                  blau:=blau+1
                              else begin
                                  if (u<112) and (u>0) and (v<-11.21) and (v>-157)then
                                      blau:=blau+1
                                  else begin
                                      if (u<0) and (u>-112) and (v<-11.21) and (v>-157)then
                                          gruen:=gruen+1
                                      else begin
                                          if (u<-8) and (u>-112) and (v<11.21) and (v>-11.21)then
                                              gruen:=gruen+1
                                          else begin
                                              if (u<8) and (u>-8) and (v<11.21) and (v>-11.21)then
                                                  grauweiss:=grauweiss+1;
                                          end;
                                      end;
                                  end;
                              end;
                          end;
                      end;
                  end;
              end
              else begin
              //y = 160 - 255
              if z>159 then begin
                  if (u<-32) and (u>-112) and (v<157) and (v>-44.85)then
                      gelb:=gelb+1
                  else begin
                      if (u<-24) and (u>-32) and (v<22.42) and (v>-44.85)then
                          gelb:=gelb+1
                       else begin
                        if (u<112) and (u>-32 ) and (v<157) and (v>22.42)then
                            lila:=lila+1
                        else begin
                            if (u<112) and (u>24 ) and (v<22.42) and (v>-11.21)then
                                lila:=lila+1
                            else begin
                                if (u<112) and (u>-24) and (v<-11.21) and (v>-157)then
                                    blau:=blau+1
                                else begin

                                end;
                            end;
                        end;
                       end;
                  end;
              end;
              end;
            end;

    //ende Farbe verzweigungen
  end;
  end;
    Memo3.Lines.Add('Rot:' + inttostr(rot));
    Memo3.Lines.add(FloatToStr(rot * 100 / (Image1.Picture.Width * Image1.Picture.Height)) + '%');
    Memo3.Lines.Add('Violett:' + inttostr(lila));
    Memo3.Lines.add(FloatToStr(lila * 100 / (Image1.Picture.Width * Image1.Picture.Height)) + '%');
    Memo3.Lines.Add('Blau:' + inttostr(blau));
    Memo3.Lines.add(FloatToStr(blau * 100 / (Image1.Picture.Width * Image1.Picture.Height)) + '%');
    Memo3.Lines.Add('Grün:' + inttostr(gruen));
    Memo3.Lines.add(FloatToStr(gruen * 100 / (Image1.Picture.Width * Image1.Picture.Height)) + '%');
    Memo3.Lines.Add('Schwarz:' + inttostr(schwarz));
    Memo3.Lines.add(FloatToStr(schwarz * 100 / (Image1.Picture.Width * Image1.Picture.Height)) + '%');
    Memo3.Lines.Add('Orange:' + inttostr(orange));
    Memo3.Lines.add(FloatToStr(orange * 100 / (Image1.Picture.Width * Image1.Picture.Height)) + '%');
    Memo3.Lines.Add('Gelb:' + inttostr(gelb));
    Memo3.Lines.add(FloatToStr(gelb * 100 / (Image1.Picture.Width * Image1.Picture.Height)) + '%');

finally
  bmp.Free;
end;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
utd123

Registriert seit: 3. Nov 2011
Ort: Deutschland
29 Beiträge
 
Delphi 7 Personal
 
#4

AW: Prozentrechnung

  Alt 8. Nov 2011, 15:02
sorry aber was meinst du mit den laufzeitpaketen und bpl`s
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Prozentrechnung

  Alt 8. Nov 2011, 15:38
Bei mir kompiliert und läuft es mit/ohne IDE
Eine Erklärung für Deinen Fehler wäre dass Du unter Projekt/Optionen/Mit Laufzeit-Packages aktualisieren angehakt hast und das Programm auf einen Rechner Testet wo die dann benötigten BPL's (bei Dir wahrscheinlich im Windowsverzeichnis) nicht vorhanden sind.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
utd123

Registriert seit: 3. Nov 2011
Ort: Deutschland
29 Beiträge
 
Delphi 7 Personal
 
#6

AW: Prozentrechnung

  Alt 9. Nov 2011, 09:03
Nein ich hab es nicht angehackt.
und ich teste es auch auf dem selben rechner wo ich es geschrieben hab.
  Mit Zitat antworten Zitat
Benutzerbild von MGC
MGC

Registriert seit: 15. Mai 2008
Ort: Helsa
106 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: Prozentrechnung

  Alt 9. Nov 2011, 11:13
Hast Du dieses Problem bereits von Anfang an gehabt oder hat sich diese/dieses Verlangsamung/Aufhängen erst zwischendrin irgendwann eingestellt?
Zeichnest Du die ausgezählte Grafik selbst oder wird sie geladen?

Ich hatte mal das Problem mit einem Icon, das es sich in einem Projekt beim einen Compilieren hat laden lassen, beim nächsten wieder nicht.
War sehr seltsam und konnte nur beseitigt werden, indem ich die Icon-Datei neu angelegt habe.

In einem anderen Thread der hier in der DP vor kurzem aktuell war, konnte ein Formular unter WIN XP anscheinend nicht richtig mit Verzögerung ausgeblendet werden, obwohl es keinen ersichtlichen Grund gab. Besodners lustig war dabei, das es unter Win 7 mit dem selben Compilat funktioniert hat.
Hier half nur das Projekt neu aufzusetzen.

Es ist manchmal lustig, aber oft hilft es eine Datei oder das Projekt selbst nochmal neu anzulegen und schon funktionieren die Dinge, bei denen man vorher so lange nach seinen eigenen Fehlern gesucht hat.
Marc
Programmieren ist wie Chemie:
1. Wenn man alles einfach nur zusammenschmeisst kommt es zu unerwarteten Reaktionen.
2. Wenn es plötzlich anfängt zu qualmen, muss man eben noch mal von vorn anfangen.
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#8

AW: Prozentrechnung

  Alt 9. Nov 2011, 16:42
Zitat:
Delphi-Quellcode:
                                                    if (u<-8) and (u>64) and (v<11.21) and (v>0)then
                                                        gruen:=gruen+1
Der Wertebereich für u ist an dieser Stelle falsch angegeben.
  Mit Zitat antworten Zitat
utd123

Registriert seit: 3. Nov 2011
Ort: Deutschland
29 Beiträge
 
Delphi 7 Personal
 
#9

AW: Prozentrechnung

  Alt 10. Nov 2011, 09:43
Ja stimmt aber dann fehler habe ich auch schon mitbekomme und habe ihn berichtigt
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 01:58 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 by Thomas Breitkreuz