Verschiebung von Pixeln beim Zeichnen eines JPEGs

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
DDKFM
Beiträge: 17
Registriert: Di 23. Sep 2014, 19:32

Verschiebung von Pixeln beim Zeichnen eines JPEGs

Beitrag von DDKFM »

Hallo,

Ich programmiere gerade einen Simulator für einen John-von-Neumann Rechner für meine Facharbeit und folgendes Problem:

Ich will eine ALU auf ein Canvas zeichnen und erzeuge dafür ein TJpegImage Objekt. Das Bild lade ich dann aus einer .jpg Datei und will es dann mit Draw auf das
Canvas zeichnen.

Code: Alles auswählen

 
   bild := TJpegImage.Create;
   bild.LoadFromFile('images/alu.jpg');
   imgHaupt.Canvas.Draw(460,85,bild);
   bild.Destroy;
 

Jetzt habe ich allerdings das Problem das ein paar Linien falsch angezeigt werden.
Ich habe die Vermutung das es was mit dem Bild zutun hat aber ich habe keinen blassen Schimmer was?
Dateianhänge
Zeichnung mit ALU
Zeichnung mit ALU
Zeichung ohne ALU
Zeichung ohne ALU

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Verschiebung von Pixeln beim Zeichnen eines JPEGs

Beitrag von Mathias »

Kannst du genauer schreiben, wo der Fehler auf dem Bild ist.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

DDKFM
Beiträge: 17
Registriert: Di 23. Sep 2014, 19:32

Re: Verschiebung von Pixeln beim Zeichnen eines JPEGs

Beitrag von DDKFM »

Da ich heute eine Freistunden hab ich mich mit meinem Lehrer nochmal hingesetzt....Mir ist aufgefallen das beim Kompilieren auf meinem PC und den Schul-PCs andere Linien gezeichnet werden. Der Versionenunterschied ist von FPC 2.6.2 auf 2.6.4 allerdings vollkommen andere Ergebnisse.
In Methode in der ich die Linien zeichne habe ich Hilfsvariablen benutzt um die Breite und Höhe festzusetzen.
Da die nur positiv zwischen 0 und 40 lagen habe ich Byte also Datentyp benutzt. Laut meinem Lehrer muss es wohl daran liegen.
Jetzt habe ich es auf integer geändert und die Linien nochmal überdacht und jetzt funktioniert. Warum aber die unterschiedlichen Versionen die Werte anders umsetzen ist mir trotzdem schleierhaft.

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Verschiebung von Pixeln beim Zeichnen eines JPEGs

Beitrag von Mathias »

Da die nur positiv zwischen 0 und 40 lagen habe ich Byte also Datentyp benutzt. Laut meinem Lehrer muss es wohl daran liegen.

Vielleicht wurde intern, in deiner Formel 255 überschritten. Und je nach Kompiler Version, wurde es anders optimiert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Verschiebung von Pixeln beim Zeichnen eines JPEGs

Beitrag von Antrepolit »

Benutze kein JPEG-Format sondern ein geeigneteres Format wie beispielsweise PNG. Ich versuche JPEG überall zu meiden, wenn es nicht gerade Urlaubsfotos sind.
Grüße, Antrepolit

care only if your os is really burning

Antworten