| Autor |
Nachricht |
maxrus
      
Beiträge: 20
|
Verfasst: Mi 09.11.11 18:12
Hallo, ich habe folgende Aufgabe,
Ein Formular enthalte 2 Imagefelder von dem das erste folgendermaßen initialisiert wird:
Aufgabe des Programms ist, auf Knopfdruck diese Pixel im zweiten Imagefeld in Vergrößerter Darstellung abzubilden. Die lineare Vergrößerung ist in Pixeln in einem Spineditfeld einzugeben. Auf Knopfdruck wird die Vergrößerung mittels einzelner Pixel dargestellt. Alle Koordinaten der Zielrechtecke sind per Programm zu berechnen.
Kann mir jemand paar Tipps geben, wie ich vorgehen soll.... ich weiß nicht wie ich diese Pixels auslesen soll, und dann spineditfeld mit imagefeld verknüpfen wüßte ich auch nicht.
Moderiert von Christian S.: Delphi-Tags hinzugefügt
Moderiert von Christian S.: Topic aus Multimedia / Grafik verschoben am Mi 09.11.2011 um 18:27
|
| |
|
|
Werbung ausblenden? Dann registriere Dich kostenlos.
Weitere Gründe für eine Registrierung.
Werbung ausblenden? Dann registriere Dich kostenlos.
Weitere Gründe für eine Registrierung.
|
|
Horschdware
      
Beiträge: 724
Erhaltene Danke: 53
Win XP professional, Win 7 Professional x64, Ubuntu
Delphi 5, Delphi 2005 Personal, Delphi 2006, Delphi XE, C++ Builder 5, PHP, SAP R/3
|
Verfasst: Mi 09.11.11 18:28
Die brutal einfachste "Quick-and-Dirty"-Methode wäre es, die Stretch-Funktion von TImage zu nutzen.
Setze die Größe des ersten Images auf das mindeste was du brauchst (z.B. 10x10 Pixel).
Setze dann die Größe des zweiten Images auf die Größe des ersten * Skalierungsfaktor.
Setze dann die Property "Streched" des zweiten Images auf true.
Übergebe dann dem zweiten Image die Bitmap des ersten:
Zur einfachen Darstellung sollte das genügen. Wenn du das aber "sauber" und "richtig" machen willst, musst du wohl ein Bisschen mehr Aufwand betreiben
Denkbar wäre (wenn du ohnehin schon das Quellbild pixelweise aufbaust) das Zielbild auch pixelbasiert mit einem Skalierungsfaktor zu bauen. In etwa so:
_________________ Delphi: XE - OS: Windows 7 Professional x64
Für diesen Beitrag haben gedankt: maxrus
|
| |
|
|
maxrus 
      
Beiträge: 20
|
Verfasst: Mi 09.11.11 18:46
das was du mit "sauber" und "richtig" bezeichnest, ist genau das was ich brauche!!! Danke
Moderiert von Martok: Komplettzitat des vorigen Beitrags entfernt.
|
| |
|
|
bummi
      
Beiträge: 980
Erhaltene Danke: 124
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mi 09.11.11 20:00
| Zitat: |
Alle Koordinaten der Zielrechtecke sind per Programm zu berechnen
|
unter diese Vorgaben ist die Lösung von Horschdware sauber und richtig
Es macht keinen Sinn die Canvasauflösung zu ändern, StretchBlt oder GDI+ Routinen zu verwenden ...
_________________ Das Problem liegt üblicherweise zwischen den Ohren
DRY DRY KISS
|
| |
|
|
Narses
       

Beiträge: 8372
Erhaltene Danke: 244
W2k, WXPpro
TP3 - D7pro
|
Verfasst: Mi 09.11.11 23:11
Moin!
bummi hat folgendes geschrieben : | | Zitat: | Alle Koordinaten der Zielrechtecke sind per Programm zu berechnen
|
unter diese Vorgaben ist die Lösung von Horschdware sauber und richtig |
Fehlt da nicht ein "nicht"?
Da die Aufgabe und der Lösungsweg recht präzise beschrieben ist, würde ich sagen, dass mit Rechtecken, statt mit Pixeln gezeichnet werden soll!
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
| |
|
|
bummi
      
Beiträge: 980
Erhaltene Danke: 124
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mi 09.11.11 23:27
@Narses, jepp, sorry
Du kennst das doch, wenn man Sätze liest in denen Dreher sind, man merkt es u.U. gar nicht
Ich hatte gelesen ...
_________________ Das Problem liegt üblicherweise zwischen den Ohren
DRY DRY KISS
|
| |
|
|
maxrus 
      
Beiträge: 20
|
Verfasst: Fr 11.11.11 14:34
Horschdware hat folgendes geschrieben : | Denkbar wäre (wenn du ohnehin schon das Quellbild pixelweise aufbaust) das Zielbild auch pixelbasiert mit einem Skalierungsfaktor zu bauen. In etwa so:
|
Was mich interessieren würde, wie kann ich diesen faktor := 20; aus dem spineditfeld auslesen, ich habe mir einfach gedacht faktor:=strtoint(spinedit1.text), dann könnte ich selber mein vergrößerungsfaktor einstellen, aber irgendwie geht das nicht....
Hat jemand Idee warum das nicht geht?"!?!
Moderiert von Narses: Zitat gekürzt.
|
| |
|
|
Narses
       

Beiträge: 8372
Erhaltene Danke: 244
W2k, WXPpro
TP3 - D7pro
|
Verfasst: Fr 11.11.11 14:46
Moin!
maxrus hat folgendes geschrieben : | | Hat jemand Idee warum das nicht geht?"!?! |
Den Wert des SpinEdit findest du in der Eigenschaft .Value.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
| |
|
|
maxrus 
      
Beiträge: 20
|
Verfasst: Fr 11.11.11 15:09
|
| |
|
|
Horschdware
      
Beiträge: 724
Erhaltene Danke: 53
Win XP professional, Win 7 Professional x64, Ubuntu
Delphi 5, Delphi 2005 Personal, Delphi 2006, Delphi XE, C++ Builder 5, PHP, SAP R/3
|
Verfasst: Fr 11.11.11 15:48
Schau dir mal den Typ von Valuean.
_________________ Delphi: XE - OS: Windows 7 Professional x64
|
| |
|
|
maxrus 
      
Beiträge: 20
|
Verfasst: Fr 11.11.11 16:21
Horschdware hat folgendes geschrieben : | | Schau dir mal den Typ von Valuean. |
irgendwie suche ich wahrscheinlich falsch, im internet gibts zwar paar beispiele, aber die sind zu umfassend nicht für mein fall gedacht, und bei einigen steht strtoint(Spinedit.value), bei anderen strtoint(SpinEdit1.text)->>>>> wo ist der unterschied, das eine ist integer und das andere string....?????? kann mir jemand schreiben wie ich das umwandeln kann?????
|
| |
|
|
|