AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Linien auf Canvas unterschiedlich breit dargestellt?
Thema durchsuchen
Ansicht
Themen-Optionen

Linien auf Canvas unterschiedlich breit dargestellt?

Ein Thema von loirad · begonnen am 5. Okt 2012 · letzter Beitrag vom 5. Okt 2012
Antwort Antwort
loirad

Registriert seit: 25. Nov 2009
135 Beiträge
 
Delphi 6 Professional
 
#1

AW: Linien auf Canvas unterschiedlich breit dargestellt?

  Alt 5. Okt 2012, 13:48
@DeddyH: Das ist mir zu hoch.

@all: Kann man auch direkt auf die Imagekomponente malen (also so, dass bei einer 500*500 Komponente ein Punkt in (250,250) bei jedem Bild in der Mitte der Komponente ist? Wenn ja wie?
Wer Fehler findet darf sie behalten!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Linien auf Canvas unterschiedlich breit dargestellt?

  Alt 5. Okt 2012, 13:52
Du brauchst doch nur 4 Parameter: Quell- und Zielgrafik (kann auch dieselbe sein) sowie maximale Breite und Höhe, Smooth ist per default true. Was ist daran zu hoch?

[edit] Ich habe mal eine Demo erstellt, die eine Bitmap erzeugt und im Speicher hält, zum Zeichnen eine Kopie dieser Bitmap erstellt, auf dieser herummalt, das dann skaliert und in einem Image darstellt. Der Code ist nicht frei von DRY, aber darauf kam es mir jetzt nicht an. [/edit]
Angehängte Dateien
Dateityp: zip Stretch.zip (2,0 KB, 4x aufgerufen)
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

Geändert von DeddyH ( 5. Okt 2012 um 14:22 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Linien auf Canvas unterschiedlich breit dargestellt?

  Alt 5. Okt 2012, 15:13
@loirad

Jetzt mal unabhängig des Fehlers, JPG Bilder sind das schlechteste Format das man zu Darstellung einer dünnen Linie wählen kann. JPG verfälschen Pixel, bzw. stellen sie nicht korrekt dar. Besser ist GIF (aber nur bis 256 Farben) oder PNG. Bei einer JPG kann eine 1 Pixel dicke Line schn mal paar Pixel dick sein.

Das nur so nebenbei.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Linien auf Canvas unterschiedlich breit dargestellt?

  Alt 5. Okt 2012, 16:56
Ich hab mir jetzt noch mal die ersten Bilder genauer angesehen (hätte ich gleich machen sollen) und kann dir sagen, dass das normal ist und kein Fehler.

Dieser Effekt kommt bei "harter" Skalierung vor, vor allem wenn ungerade skaliert wird. Du mußt dir das so vorstellen

####000####000####000####000 //volle Zeichen

##0#0#0##0 //jedes dritte Zeichen wird beachtet

Du hast oben ein Muster, vier Rauten, drei Nullen usw. Stell dir vor die Rauten sind schwarze Pixel einer Grafik. Jetzt soll das auf 1/3 skaliert werden. Also macht sich die Skalierfunktion das Ganze sehr einfach - es beachtet nur jeden dritten Pixel. Das führt dazu, dass durch die ungerade Skalierung das gleichmäßige Muster ungleichmäßig wird.

Genauso ist es bei "harter" Skalierung von Bildern, einige Pixel werden einfach nicht beachtet, dh. sie werden unterschlagen.

Lösung: DeddyH hat dir den Tipp mit der weichen Skalierung genannt. Die funktioniert etwas anders. Hier werden die Pixel nicht unterschlagen, sondern aus allem Pixeln wird eine Art Mittelwert gebildet.
  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 11:20 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-2025 by Thomas Breitkreuz