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
Seite 2 von 4     12 34      
utd123

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

AW: Prozentrechnung

  Alt 8. Nov 2011, 10:49
Ach eins noch: wie kann man denn die nachkommastellen begrenzen?
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#12

AW: Prozentrechnung

  Alt 8. Nov 2011, 10:51
Delphi-Referenz durchsuchenroundTo
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Prozentrechnung

  Alt 8. Nov 2011, 10:54
Oder wenn es nur um die Ausgabe geht: Delphi-Referenz durchsuchenFormat
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
 
#14

AW: Prozentrechnung

  Alt 8. Nov 2011, 10:55
Hier gleich mal der gesamte Quelltext
ist aber noch nicht fertig ein paar farben Fehlen noch, wie z.B.gelb:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, ExtDlgs, jpeg, Menus, ComCtrls, MidasLib;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    Image1: TImage;
    OpenPictureDialog1: TOpenPictureDialog;
    MainMenu1: TMainMenu;
    bildffnen1: TMenuItem;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    ProgressBar1: TProgressBar;
    Ende1: TMenuItem;
    procedure BitBtn1Click(Sender: TObject);
    procedure bildffnen1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Ende1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1:TForm1;
  y,u,v,b,r,g,maxu,maxv,minu,minv,z,maxz,minz:real;
  rot,blau,lila,gruen,schwarz,orange,grauweiss:integer;
  color:TColor;
  mein_jpeg: TJpegImage;
  mein_bmp: tBitmap;

implementation

{$R *.dfm}
procedure TForm1.bildffnen1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute
         then
          begin
           Image1.Picture.LoadFromFile(OpenPictureDialog1.filename);
          end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  x,y:Integer;

begin
ProgressBar1.position:=0;
for x:=0 to Image1.Picture.Bitmap.Width -1 do
  begin
  //Progress Bar
  ProgressBar1.Max := Image1.Picture.Bitmap.Width +1;
  ProgressBar1.Position := ProgressBar1.Position+1;
  //Progress Bar Ende
  for y:=0 to Image1.Picture.Bitmap.Height -1 do
    begin
    color :=Image1.Picture.Bitmap.Canvas.Pixels[x,y];
    b:=getbvalue(color);
    g:=getgvalue(color);
    r:=getrvalue(color);
    z:=(0.299*r)+(0.587*g)+(0.114*b);
    u:=(b-z)*0.493;
    v:=(r-z)*0.877;
    //Memo1.Lines.Add('r: ' + floattostr(r) + ' g: ' + floattostr(g) +' b: ' + floattostr(b));
    //Memo2.Lines.add(floattostr(z) + floattostr(u) + floattostr(u));
    //start Farbe verzweigungen
      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<171)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 = 171 - 255

        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)) + '%');
  end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.lines.Delete(0);
Memo2.lines.Delete(0);
Memo3.lines.Delete(0);
end;

procedure TForm1.Ende1Click(Sender: TObject);
begin
close;
end;

end.
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#15

AW: Prozentrechnung

  Alt 8. Nov 2011, 11:00
Wie wär's mit einem

Delphi-Quellcode:
if (Bedingung) then
  ...
else if (Bedingung) then
  ...
else if (Bedingung) then
  ...
?
  Mit Zitat antworten Zitat
utd123

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

AW: Prozentrechnung

  Alt 8. Nov 2011, 11:02
im Prinzip hab ich das doch oder?
Außer dass das if...then eine zeile weiter unten steht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Prozentrechnung

  Alt 8. Nov 2011, 11:04
Er meinte wohl die Einrückungen, die gehen ja im Laufe der Zeit sehr weit nach rechts. Übrigens: wozu brauchst Du die ganzen globalen Variablen und die MidasLib?
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
 
#18

AW: Prozentrechnung

  Alt 8. Nov 2011, 11:08
Die variablen kommen aus den beta vesions zeiten alls das ganze noch nicht so funktionierte.
da hab ich mir die maximalen und die minimale y,u,v,r,g und b werte ausgeben lassen(RGB farbraum, YUV Farbraum)

Midaslib stand so im internet damit dass programm unter windows nicht mehr abstürtzt.
(machts aber trotzdem noch)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Prozentrechnung

  Alt 8. Nov 2011, 11:10
Mach doch erst einmal aus den benötigten globalen Variablen lokale und lass die anderen weg. Zudem würde ich die Farbvariable nicht Color nennen, da das Formular eine gleichnamige Eigenschaft besitzt. Und dass das Programm abstürzt dürfte nicht an einer fehlenden MidasLib liegen.
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
 
#20

AW: Prozentrechnung

  Alt 8. Nov 2011, 11:12
vielleicht in der end-version
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      

 

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 23:47 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