Autor Beitrag
Sithlord
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 172



BeitragVerfasst: Mi 21.04.10 23:13 
Hallo Delphi Forum,

ich habe mal wieder ein kleines Problem.
Ich lade mir ausm Web eine png Datei herunter,
diese Datei hat leider (aus momentan nicht änderbaren gründen) einen weißen Rand rund um den sinnvollen Inhalt, einer Tabelle.
Da habe ich mir gedacht, ich könne ja einfach prüfen, ab wann diese Tabelle beginnt (y und x) und dann wird alles zentriert angezeigt.

Pustekuchen, leider zeigt er mal das eine Bild mittig an, das andere nicht (Die tabellen sind ungefähr gleich groß, sollten also alle zentriert ca. gleich groß sein).
Ich haue da vl. irgendwo Fehler rein oder kann mir das im Kopf nicht richtig vorstellen, auf alle Fälle funktioniert es mal, und mal nicht.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
        Image1.Top:=0;
        Image1.Left:=0;
        Image1.Width:=833;
        Image1.Height:=379;
        image1.Picture.LoadFromFile(timemonth+'-'+timeday+'.png');
        Image1.Width:= Trunc(Image1.Width-100);
        Image1.Height:= Trunc(Image1.Height);
        for i:=50 to 200 do begin
          Application.ProcessMessages;
          cl:=Image1.canvas.Pixels[i,500];
          if (cl<>clwhite) then begin
            break;
          end;
        end;
        Image1.Top:=Image1.Top+i;
        for i2:=1 to 120 do begin
          Application.ProcessMessages;
          cl:=Image1.canvas.Pixels[300,i2];
          if (cl<>clwhite) then begin
            break;
          end;
        end;
        Image1.Left:=Image1.Left+i2;

Image Height und Width setzen die gesamte größe des timage, top und left wollte ich verändern, um die Position des Bildes zu verändern, will heißen diese weißen leerflächen einfach ins nirvana zu verschieben.
Mithilfe einer Schleife prüfe ich, wann ein pixel nicht mehr weiß ist, es ist dabei der obere Rand einer Tabelle und der Link (Die Tabelle ist nicht ganz viereckig, deshalb diese hohe Zahl für y und x).
Dann fülle ich damit das Top und left, trozdem geht es nicht, er zeigt es trotzdem so blöde verschoben an, anstatt direkt am sichtbaren bereich des images oben links alles anzeigen zu lassen. Die Tabelle beginnt leider nicht oben Links, sondern immer wieder woanders, je nach bildgröße. (Dabei sind es unterschieder wie 1024x534 und 1024x585 und so weiter...).

Würde mich für jede Hilfe bedanken.

Mfg Kalle
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Do 22.04.10 00:19 
ich denke CopyRect könnte dir bei deinem Problem helfen. Damit kannst du den Bildausschnitt den du haben willst einfach aus dem ursprünglichen Bild rauskopieren. ;)

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Sithlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 172



BeitragVerfasst: Fr 23.04.10 19:21 
Ahhh, cool ;) Ich werde es mal versuchen, danke dir!