AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Bild Horizontal spiegeln (vertikal klappt)
Thema durchsuchen
Ansicht
Themen-Optionen

Bild Horizontal spiegeln (vertikal klappt)

Ein Thema von andiak · begonnen am 7. Apr 2008 · letzter Beitrag vom 7. Apr 2008
Antwort Antwort
andiak

Registriert seit: 1. Nov 2007
89 Beiträge
 
#1

Bild Horizontal spiegeln (vertikal klappt)

  Alt 7. Apr 2008, 13:16
Ich habe jetzt ein Code geschrieben womit ich ein Bild Vertikal Spiegeln kann.
Das ist folgender Code

Delphi-Quellcode:
procedure VertikalSpiegele(Bild1:TImage);
var x,y:integer;
       hilf : TColor;
begin
  for x:=0 to Bild1.width div 2 - 1 do
   for y:=0 to Bild1.height - 1 do
   begin
    hilf := Bild1.canvas.pixels[x,y];
    Bild1.canvas.pixels[x,y]:=Bild1.canvas.pixels[Bild1.width-1-x,y];
    Bild1.canvas.pixels[Bild1.width-1-x,y] := hilf;
   end
end;

Allerdings steig ich da nicht wirklich durch (da mit hilfe des Lehrers geschrieben)
Aber geschrieben hab das wirklich ich
Ich hab an folgendes Gedacht für Horizontal spiegeln:
Delphi-Quellcode:
procedure VertikalSpiegele(Bild1:TImage);
var x,y:integer;
       hilf : TColor;
begin
  for x:=0 to Bild1.width - 1 do
   for y:=0 to Bild1.height div 2 - 1 do
   begin
    hilf := Bild1.canvas.pixels[x,y];
    Bild1.canvas.pixels[x,y]:=Bild1.canvas.pixels[Bild1.height-1-y,x];
    Bild1.canvas.pixels[Bild1.height-1-y,x] := hilf;
   end
end;
klappt aber nich
  Mit Zitat antworten Zitat
kaiser1401

Registriert seit: 6. Mär 2006
Ort: Gescher
157 Beiträge
 
Delphi 7 Professional
 
#2

Re: Bild Horizontal spiegeln (vertikal klappt)

  Alt 7. Apr 2008, 14:28
schonmal versucht in den letzten beiden zeieln x und y wieder zu tauschen? also

Delphi-Quellcode:
    Bild1.canvas.pixels[x,y]:=Bild1.canvas.pixels[x,Bild1.height-1-y];
    Bild1.canvas.pixels[x,Bild1.height-1-y]:= hilf;


Zu erklärung der ursprünglichen Methode:

stell dir ein Bild vor das 10 Pixel breit ist und 5 hoch

oben links ist pixel (0,0) und unten rechts damit (9,4)

die erste schleife geht von 0 bis 4 (4:= 10 div 2 -1)
die zweite geht die zeien durch, also 0 bis 4

1. merke dir farbe x,y also (0,0)
2. setze farbe x,y := farbe (9,0)
3. setze farbe x,y ;= gemerkte farbe.

verstanden?
inc(i);
  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 21:11 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