Deutsch
Quelltexte/ Codesnippets

Bild Drehen Gdiplus Image Jpg Rotation Speichern

 
- Seite 1 -


Siehe auch: Drehen ohne GDI+:  [...] 
Dank an Andreas Miethe!
Beispiel :
 $H windows.ph
 $H includes\Functions_GDIPLUS.ph
 $H includes\GDIP_Imageging.ph
 $I includes\GDIP_Helper.inc
Declare gdiplusToken&,ImageObject&,GraphicObject&,ImageWidth&,ImageHeight&
Declare SIO&,DC&,BMP&,Brush&
CLS ~GetSysColor(~COLOR_3DFACE)
gdiplusToken& = InitGDIPlus()GDIPlus starten
Bild laden
ImageObject& = gdipLoadImage(eisbaer.jpg) Pfad anpassen

If ImageObject&

    ~GdipGetImageWidth(ImageObject&,ADDR(ImageWidth&))Breite ermitteln
    ~GdipGetImageHeight(ImageObject&,ADDR(ImageHeight&))Hoehe ermitteln
    DC& = ~CreateCompatibleDC(%hdc)SpeicherDC
    Breite und Höhe errechnet sich aus der Bilddiagonalen
    BMP& = ~CreateCompatibleBitmap(%hdc,INT(Sqrt((ImageWidth&^2)+(ImageHeight&^2))),INT(Sqr t((ImageWidth&^2)+(ImageHeight&^2))))Speicherbitmap
    Brush& = ~CreateSolidBrush(RGB(0,0,0))Brush
    ~SelectObject(DC&,BMP&)Speicherbitmap in SpeicherDC
    ~SelectObject(DC&,Brush&)Brush für SpeicherDC
    ~Rectangle(DC&,0,0,491,491)Rechteck zeichnen
    ~GdipCreateFromHDC(DC&,ADDR(GraphicObject&))Graphics-von SpeicherDC
    ~GdipRotateWorldTransform(GraphicObject&,Single(45.0),1)Rotation setzen
    ~GdipDrawImageRectI(GraphicObject&,ImageObject&,(ImageHeight&/2),-(ImageHeight&/ 2),ImageWidth&,ImageHeight&)
    ~GdipCreateBitmapFromHBITMAP(BMP&,0,Addr(SIO&))Image von Speicherbitmap
    SaveAsJPG(SIO&,AX.jpg,30) Image speichern
    aufräumen
    ~GdipDeleteGraphics(GraphicObject&)
    ~GdipDisposeImage(ImageObject&)
    ~GdipDisposeImage(SIO&)
    ~DeleteObject(BMP&)
    ~DeleteObject(Brush&)
    ~DeleteDC(DC&)

Endif

Print Fertig
Waitinput
ExitGDIPlus(gdiplusToken&) GDIPlus beenden
End
Salve, iF.
 
16.11.2005  
 



 
- Seite 1 -


Die habe ich in diese Demo gefunden mit der ich jetzt auch meine experiemente mache.
Weiss aber nicht ob alle Befehle von der GDI enthalten sind.

mfg

505 kB
Hochgeladen:16.02.2009
Ladeanzahl205
Herunterladen
 
16.02.2009  
 



Sag mir lieber, wie ich die wmf-datei durchsichtig abspeichern kann mit Paintshop.
 
16.02.2009  
 




E.T.
@Peter: Kann denn .wmf überhaupt transparent ??
Hab eben mal durch div. Programm geschaut, keines bietet .wmf-speichern mit transparenz an.
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
16.02.2009  
 



 
- Seite 2 -


Hallo!

Eine mögliche Antwort zur Frage Transparent Windows metafile (WMF) findet man auf
[...] 

Zit. sinngemäß: Theoretisch geht das schon, in der Praxis kennen wir aber kein Tool, mit dem das einfach geht. Daher gibt es zwei mögliche Ansätze:

1. Wandle parallel zu deiner Ausgangsbitmap eine Transparenzmaske mit in das wmf Metafile, und benutze ensprechende Bitmap-Operationen, bevor du die Bilddatei wirklich anzeigst.
Zitat: I dont know of any program that can do approach number 1., also: der Autor kennt kein Programm das das kann... oder

2. Vektorisiere das Bild und entferne dann alle Bildteile mit Hintergrundfarbe.
Nutze daszu ein Vektorisierungsprogramm, um ins Metafile Format zu konvertieren.
Dann nutze ein Programm wie z.B. * Metafile Companion, um die Hintergrundfärbigen Elemente zu löschen.

Weitere Porgramme, die das können, sind (angeblich)
* HiJaak Pro von IMSI oder
* Adobe Illustrator von Adobe
* KVEC from KK-Software kann das nachgewiesenermaßen auch recht gut, hat aber sehr viele Optionen, nicht nur für WMF. Gibts für Windows und viele andere Plattformen.
Zit.Ende

Naja.. direkte Hilfe wars keine, aber naja, jeder tutet was er kann...

Gruss
Peter Specht
 
16.02.2009  
 




E.T.
Ohne mir jetzt die Demo anzuschauen: Muss es denn wmf sein ??
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
16.02.2009  
 



]Muss es denn wmf sein ??

Wenn einer weiss wie man mit GDI-Plus auch eine png mit Alphakanal als durchsichtig einladen kann? Wäre auch ne Lösung.
Mit dem WMF kann ich ein Bild über das andere legen und man sieht die hinteren Figuren ohne das diese vom Viereck verdeckt werden.
 
17.02.2009  
 




Thomas
Freier
Das Beispiel von Andreas zeigt nur, dass auch *.wmf verwendet werden können. Vermutlich aber in *.bmp umgewandelt werden. Nicht getestet: speichern als *.gif.
Da die *.wmf vektorisiert ist, ist es kein Problem mit einer entsprechenden Sofware dieses Bild in seine Linien und Flächen zu zerlegen und alle nicht gefärbten Bereiche bleiben transparent(Beispiel). Geladen in eine Bildverarbeitung, wird automatisch ein Hintergrund erzeugt. Wird das Bild (hier der Hund) über IrfanView als *.png oder *.gif transparent gespeichert, so wird die als transparent gewählte Farbe auch Bereiche im Hund transparent darstellen, obwohl hier z.B.: weisse Flächen erhalten bleiben sollen. Eine Möglichkeit: den Hund auf einen farbigen Hintergrund (die Farbe darf dann aber im Hund nicht vorkommen) kopieren und eine *.png oder *.gif erstellen.
Hilfe XProfan 11:


XProfan unterstützt ab Version 11 auf das MetaFile-Format. Es wird sowohl das ältere Format (Windows MetaFile *.wmf) als auch das neuere erweiterte Format (Enhanced MetaFile *.emf) erkannt.

Mit Create(hPic,..) und anderen Bitmapbefehlen können zwar auch Metafiles (*.wmf und *.emf) geladen werden, allerdings werden hier die Grafiken in Bitmaps umgewandelt, die die Originalgröße der urspünglichen Metafiles haben. Das ist auch weiterhin sinnvoll, wenn man von Grafiken, die als Metafiles vorliegen, ein Bitmaphandle benötigt, etwa um sie in Toolbars oder auf Buttons zu verwenden.

MetaFiles sind aber keine Bitmaps, sondern lediglich Befehlsfolgen, um Grafiken zu zeichnen, so wie es z.B. auch bei Vektororientierten Grafikprogrammen, wie etwa CAD und Publikations-Software üblich ist. Da die Grafiken in beliebiger Größe gezeichnet werden können, bleiben Sie auch scharf, wenn sie größer gezeichnet werden, als die Ursprungsgröße war. Bei Bitmaps hingegen werden bei Vergrößerung nur die Pixel größer und deutlicher sichtbar.

Mit @create(hMetaFile wird ein MetaFile wird geladen und das entsprechende Handle zurückgeliefert. Nach Gebrauch muss das Handle wieder mit DeleteObject entsorgt werden. Die alten Windows-MetaFiles (*.wmf) werden automatisch in die neueren Enhanced MetaFiles umgewandelt. Die Systemvariablen %MFX und %MFY enthalten die ursprüngliche Größe der Grafik. Das MetaFile wird auf den Bildschirm (oder Drucker) mit dem Befehl PlayMetaFile gezeichnet.


36 kB
Hochgeladen:17.02.2009
Ladeanzahl257
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
17.02.2009  
 




Rolf
Koch
Ich weis zwar nicht ob das jetzt irgendwie passt, aber das Format PNG ist neben GIF auch transparentfähig.
 
17.02.2009  
 



Ich weis zwar nicht ob das jetzt irgendwie passt, aber das Format PNG ist neben GIF auch transparentfähig

Sehr interessant.

Zeig mir jetzt dann eben mal, wie ich das in GDIPlus realisiere?

mfg
 
17.02.2009  
 




Thomas
Freier
Also den Einsatz einer *.gif oder *.png an Stelle der *.wmf ?

41 kB
Hochgeladen:17.02.2009
Ladeanzahl249
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
17.02.2009  
 



So, danke. jetzt funktioniert es.

Die GIF und PNG müssen 8Bit-Farben sein. Und der Kanal dafür muss in Paintshop auf Transparent gestellt werden.

Das hatte ich nicht geschnallt.

Jetzt laufen auch meine eigenen Bilder.

mfg
 
17.02.2009  
 



Siehe auch: Drehen ohne GDI+: [...] 
 
08.11.2011  
 




Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

28.150 Betrachtungen

Unbenanntvor 0 min.
Thomas Freier16.02.2024
H.Brill27.09.2023
Uwe Lang19.09.2023
p.specht13.06.2022
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie