Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zeichnen auf Image mit zoom (https://www.delphipraxis.net/160149-zeichnen-auf-image-mit-zoom.html)

thomas2009 30. Apr 2011 01:02

AW: Zeichnen auf Image mit zoom
 
Noch ein mal
beim zoom 100% (kein Zoom) ist beim Zeichnen die canvas.pen.width :=1; also 1 Pixel

Nun möchte ich das Bild 50% verkleinern (Faktor=0,5)
bei diesem zoom möchte auf das Image zeichnen
wie kann ich eine pen.Width von 0,5 pixel eingeben !:-D

Beim Vergrössern ist ja kein Problem

wicht 30. Apr 2011 01:07

AW: Zeichnen auf Image mit zoom
 
Was meinst du denn, wie ein halber Pixel so aussieht?

Aber das ist am Ende Kinderkram. Ich manipuliere halbe Bits, das ist Hard-Mode für echte Profis!

thomas2009 30. Apr 2011 01:25

AW: Zeichnen auf Image mit zoom
 
Liste der Anhänge anzeigen (Anzahl: 1)
Darum ist das Zoomen bei MS Paint beschränkt
nur vergrössern erlaubt

wicht 30. Apr 2011 01:32

AW: Zeichnen auf Image mit zoom
 
Zoomen ist beschränkt, aber Vergrößern erlaubt? Schließt sich das nicht irgendwie aus? Naja, ich habe leider schon ein paar Bier getrunken. Vielleicht kann ich diese komplizierten Zusammenhänge nicht mehr fassen :-D

thomas2009 30. Apr 2011 01:42

AW: Zeichnen auf Image mit zoom
 
zoom besteht aus zoom out und zoom in auf Deutsch (verk./verg.)
Zoom out ist bei mspaint nicht möglich. was ist nun nicht klar

wicht 30. Apr 2011 02:04

AW: Zeichnen auf Image mit zoom
 
Wenn du zuweit heraus zoomst, muss der Pixel unsichtbar werden. Wenn er immer angezeigt werden soll musst du eben etwas rechnen und ihn auf dem verkleinerten Bild malen. Er passt dann zwar nicht ganz zu den Abmessungen des Bildes, aber malen kann man ihn trotzdem.
Sorry, habe gerade leider gerade keine Zeit, dir hier ein Programm im Anhang zu Posten, was dein Problem löst.

Verdammt. Ich lasse mich hier schon wieder drauf ein. Ich bin erstmal wieder raus.

s.h.a.r.k 30. Apr 2011 02:41

AW: Zeichnen auf Image mit zoom
 
Sorry, aber hier sollte echt erst mal überlegt werden, was denn überhaupt gewollt wird. Vor allem, was Zoom In bzw. Zoom Out in gewissen Situationen bedeutet, ebenso was dann eben der Zustand des Bildes vorher und nachher ist.

Zitat:

wie kann ich eine pen.Width von 0,5 pixel eingeben !
Geht nicht! Punkt.

Zitat:

Beim Vergrössern ist ja kein Problem
Die Aussage zeigt schon mal wieder, dass du nicht wirklich darüber nachgedacht hast. Was passiert denn, wenn jemand einen Ansicht von 125% haben will? Wie rechnest du das dann?

Es gibt nur ganze Pixel, außer du benutzt Subpixelrendering, wobei ich dir nicht zumute, dass du das umsetzen kannst.

Lass das ganze doch einfach TImage für dich umrechnen und geb dich mit dem Ergebnis zufrieden. Wie mkinzler schon erwähnt hat: du hälst ein Original-Image im Speicher und ein anderes zeigst du entsprechend geändert an. Das im Speicher hat immer die "Zoom-Stufe 1" und du kannst dort dann auch mit einer Pen-Width von 1 zeichnen. Danach machst du ein Assign und fertig ist die Welt. Aber frag jetzt um Gottes will nicht nach Code...

DeddyH 30. Apr 2011 07:05

AW: Zeichnen auf Image mit zoom
 
Zitat:

Zitat von thomas2009 (Beitrag 1097756)
Der Code aber kann nur vergrössern, da du Integer verwendest für desWidth, desHeight

Nur mal so nebenbei: ich hatte den Code ursprünglich geschrieben, weil ich Grafiken verkleinern wollte :stupid:

thomas2009 30. Apr 2011 15:01

AW: Zeichnen auf Image mit zoom
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1097783)
Was passiert denn, wenn jemand einen Ansicht von 125% haben will? Wie rechnest du das dann?

Wer erlaubt dem Anwender einen beliebigen Skalierfaktor zu verwenden ?
die Antwort: Ich nur :-D
Bei MS Paint wie ich geschildert habe macht genauso
Ich gebe die Möglichkeit bei Zoom nur : 2x, 4x, 6x, 8x, 10x

Beim Verkleinern habe ich auch den Trick gefunden um das Image zu verkleinern. Den Code habe ich schon hingelegt.
Was aber nicht gelöst ist das Zeichnen auf das Image mit einem Skalierfaktor kleiner als 1

Zitat:

Zitat von DeddyH (Beitrag 1097792)
Nur mal so nebenbei: ich hatte den Code ursprünglich geschrieben, weil ich Grafiken verkleinern wollte :stupid:

Wir sind aber eine Schritt weiter @deddyH.
Und zwar das Zeichnen auf das Image mit einem kleinen Skalierfaktor. Ich meine wie wird cancas,pen.width dargestellt ?
Meine Idee, was ich gerade tue:
Aber Faktor <1 bleibt canvas.pen.width:=1
Und aber Zoom (Faktor) > 1 then
Delphi-Quellcode:
canvas.pen.width:=canvas.pen.width*zoom

rollstuhlfahrer 30. Apr 2011 15:36

AW: Zeichnen auf Image mit zoom
 
Mal ne Frage: Wie meinst du, macht Paint das mit dem Malen, während du das Bild vergrößert hast? - In irgendeinem Tutorial dafür steht:
Zitat:

Male nicht auf das vergrößerte Bild, sondern rechne die Koordinaten um und male auf das Ursprungsbild.
So hast du auch nicht das Problem, welches auftritt, wenn du dein Bild auf 50% der Fläche reduzierst und dann wieder vergrößerst.

Kleiner Hinweis: Wenn du ein skaliertes Bild zurück in die Ausgangsgröße skalierst, dann ist es nicht mehr das selbe Bild!

Bernhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 Uhr.
Seite 3 von 5     123 45      

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