Laden...

Lupe: Teilbild aus vergrößertem Bild herausholen

Erstellt von Ploetzi vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.382 Views
Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren
Lupe: Teilbild aus vergrößertem Bild herausholen

Folgendes problem.
Ich will foglendes ausgeben:

Ein Image soll auf xlaengexbreite gedehnt werden
und dann soll ein teilbild an der position xpos1 und ypos1 mit den abmessungen xwert1
ywert1 herausgeholt werden und in einem Image drin stehn.

Wie mach ich das?

Hab das mit drawimage probiert (sourcerectangle usw.)
hab das aber nicht geschafft.

Waere echt toll wenn IHR mir weiterhelfen koenntet.

998 Beiträge seit 2007
vor 15 Jahren

Es funktioniert aber genau so 🙂 Was möchtest du denn nun für einen Tip hören? Das ist einfach nur ein bisschen rechnerei, mehr nicht.

Gruß David

Gelöschter Account
vor 15 Jahren

hol dir die graphics vom image

dehnen gaht glaube ich mit ScaleTransform
zeichnen ienes bereiches geth mit DrawImage

mehr benötigst du nicht.

alles weitere:

	[Wichtig: [Hinweis] Wie poste ich richtig? ](http://www.mycsharp.de/wbb2/thread.php?threadid=26594)  
		Punkt 4 Verlangt keine fertigen Lösungen  
		Punkt 5 Problem genau beschreiben, inkl. genauer Fehlermeldung
Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

ok.
so hol ich mir die graphics die ich dehne:
e.Graphics.DrawImage(img, new System.Drawing.Rectangle(0, 0, xlaenge, xbreite));

jetzt will ich daraus
an der position

xpos1 und ypos1 einen TEILAUSSCHNITT der groesse xbreite*xlaenge rausscheniden
und das dann in picturebox1 ausgeben

Zum Thema Punkt4 und Punkt5

Verlange keine fertige Loesung, aber das ist ein Einzeiler und ja, ich weis nicht wie ich da weiterfragen koennte,...
Ich will eben aus dem graphics einen teil rausnehmen.

Zu 5. also versteh ich nicht,... hab das genauestens ausgedrueckt.

Achja bin total bemueht die Regeln einzuhalten.

998 Beiträge seit 2007
vor 15 Jahren

Berechne doch einfach das Verhältnis zu tatsächlicher Bildgröße zu deiner xlaenge bzw xbreite. Den Wert mulitpizierst du dann einfach mit deiner laenger bzw breites deines Teilausschnitts.

Warum so umständlich?

Gruß David

Gelöschter Account
vor 15 Jahren

willst du etwas lupenähnliches machen?

998 Beiträge seit 2007
vor 15 Jahren

Für mich klingt es nach einer Picturebox in der man zoomen kann, kann das sein? Falls ja, das kannst du innerhalb von 5 min mit .NET-Komponenten lösen.

Gruß David

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

ja genau jack, du hast es erfasst. Ist meine Umschreibung wirklich so katastrophal?

(das ist kein vorwurf sondern hisst nur dass ich auch kritik vertrage etc.)

Ich will aber den herausgezoomten bereich in einem eigenen Fenster, und das Zoomen soll nicht aus ner picturebox raus sondern aus ner image heraus sein

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

Welche .net Komponenten. Also ich haette das Bild eben gedehnt und dann ausgeschnitten den teilbereich.
Aufgrund der Anwendung muss ich das mit dem dehnen so machen.

998 Beiträge seit 2007
vor 15 Jahren

Nimmst ein Panel, stellt das AutoAcroll auf True und schmeißt in das Panel eine Picturebox mit sizemode auf zoom. Dann kannste durch verändern der breite und höhe der picturebox den zoomlevel bestimmen.

Wenn du es gern seperat haben willst nimmst du halt einfach eine Kopie des bildes in einer neuen Picturebox.

Gruß David

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

Mein Ansatz:
e.Graphics.DrawImage(img, new System.Drawing.Rectangle(0, 0, xlaenge, xbreite));
e.Graphics.SetClip(new Rectangle(xpos1,ypos1,xwert1,ywert1), CombineMode.Replace);

Naja, so stell ich mir das vor, was funktioniert da nicht?

998 Beiträge seit 2007
vor 15 Jahren

Schau dir meinen 2. Post bitte nochmals an, dort ist es bereits beantwortet. Ich habe fast dasselbe implementiert und so funktioniert es schnell und unkompliziert.

Gruß David

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

Ich hab das schon gesehen. Danke!
Aber ich will das ja an bestimmten Positionen machen, wer kann mir bei MEINEM Code weiterhelfen.

Gelöschter Account
vor 15 Jahren

die position kannst du mit autoscrolloffset bestimmen.

dein code kannst du wegschmeißen.

falls du dennoch weitermachen willst:

	[Eine Lupe mit C#](http://www.mycsharp.de/wbb2/thread.php?threadid=4270)
998 Beiträge seit 2007
vor 15 Jahren

Ein letzter Post von mir: Wenn du dir meinen Post mal gewissenhaft durchgelesen hättest und das Beispiel nachvollzogen hättest, wüsstest du, das du die Position dann anhand der x,y-punkte des Rectangles freibestimmen kannst.

Gruß David

45 Beiträge seit 2004
vor 15 Jahren

Hallo,

da hier auf meine Lupe schon verlinkt wurde bleibt mir nur zu sagen dass du mich gerne anschreiben kannst.
Ich kann gerne versuchen dir bei der Lösung zu helfen.

Grüße,

KirK

}{4/3 |=|.[||

C
274 Beiträge seit 2008
vor 15 Jahren

@ David:

Hey danke die Info mit dem Panel is Spitze!!!!!!!

Lg Tom