| |
|
|
- 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. |
|
|
| |
|
|
|
| |
|
- 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 |
|
|
| |
|
|
|
| Sag mir lieber, wie ich die wmf-datei durchsichtig abspeichern kann mit Paintshop. |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
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.
|
|
|
| |
|
|
|
Rolf Koch | Ich weis zwar nicht ob das jetzt irgendwie passt, aber das Format PNG ist neben GIF auch transparentfähig. |
|
|
| |
|
|
|
| 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 |
|
|
| |
|
|
|
Thomas Freier | Also den Einsatz einer *.gif oder *.png an Stelle der *.wmf ? |
|
|
| |
|
|
|
| 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 |
|
|
| |
|
|
|
| Siehe auch: Drehen ohne GDI+: [...] |
|
|
| |
|
|