| |
|
|
| 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. |
|
|
| |
|
|
|
| Wo kriege ich dies dateien her für GDIPlus?
mfg
$H includes\Functions_GDIPLUS.ph $H includes\GDIP_Imageging.ph $I includes\GDIP_Helper.inc |
|
|
| |
|
|
|
| Stimmt, die fehlen hier [...] . |
|
|
| |
|
|
|
| Hallo ich habe diese Demo jetzt geladen. Der Hund wird schön als Sprite dargestellt, wo die Farbe weiss durchsichtig ist. Diesen Wert habe ich auf auf :Single(1.0) gestellt.
Wenn ich nun mit Paintshop die 1.wmf als 2.wmf abspeichere, ist das weiss nicht mehr durchsichtig beim darstellen. Wie kommt das?
$H windows.ph
$H includes\Functions_GDIPLUS.ph
$H includes\GDIP_Imageging.ph
$I includes\GDIP_Helper.inc
Declare gdiplusToken&,ImageObject&,ImageObject1&,GraphicObject&,Attributes&
Declare Color_Matrix#
CLS ~GetSysColor(~COLOR_3DFACE)
gdiplusToken& = InitGDIPlus()GDIPlus starten
Farb-Matrix aufbauen 5 X 5 SingleFloat-Werte
Dim Color_Matrix#,4*(5*5)
Long Color_Matrix#,0 = Single(1.0),Single(0),Single(0),Single(0),Single(0)rot
Long Color_Matrix#,20 = Single(0),Single(1.0),Single(0),Single(0),Single(0)grün
Long Color_Matrix#,40 = Single(0),Single(0),Single(1.0),Single(0),Single(0)blau
zum Testen den Wert 4 (0.6) verändern
Long Color_Matrix#,60 = Single(0),Single(0),Single(0),Single(1.0),Single(0)alpha
Long Color_Matrix#,80 = Single(0),Single(0),Single(0),Single(0),Single(1.0)
Bild laden
ImageObject& = gdipLoadImage(eisbaer.jpg) Pfad anpassen
ImageObject1& = gdipLoadImage(2.wmf) Pfad anpassen
If ImageObject&
und auf %hWnd zeichnen
~GdipCreateFromHWND(%hWnd,ADDR(GraphicObject&))alle Graphics-Operationen auf %hWnd
Bild 1 zeichnen
~GdipDrawImageI(GraphicObject&,ImageObject&,120,0)Bitmap zeichnen
Attribute anlegen
~GdipCreateImageAttributes(Addr(Attributes&))
Color_Matrix zu den Attributen
~GdipSetImageAttributesColorMatrix(Attributes&,~ColorAdjustTypeDefault,1,Color_Matrix#,0,~ColorAdjustTypeDefault)
Bild2 mit Attributen zeichnen
~GdipDrawImageRectRect(GraphicObject&,ImageObject1&,0.0,0.0,Single(400.0),Single(400.0),0.0,0.0,Single(400.0),Single(400.0),~UnitPixel,Attributes&,0,0)
~GdipDisposeImageAttributes(Attributes&)
~GdipDisposeImage(ImageObject&)
~GdipDisposeImage(ImageObject1&)
~GdipDeleteGraphics(GraphicObject&)
Dispose Color_Matrix#
Endif
Waitinput
ExitGDIPlus(gdiplusToken&) GDIPlus beenden
End
|
|
|
| |
|
|
|
| Bitte zunächst [...] auffüllen. |
|
|
| |
|
|
|
| was soll ich da auffüllen........... |
|
|
| |
|
|
|
| Die GDI+ gibts bei Microsoft. [...] Download erfordert allerdings Validation der Rechtmässigkeit. |
|
|
| |
|
|
|
| Habe die jetzt schon geladen, läuft alles soweit.
Mir geht es nur um die Frage: warum ist die 2.wmf nicht durchsichtig?
mfg |
|
|
| |
|
|
|
| Peter Bierbachh
was soll ich da auffüllen...........
Öhm, hast die Headerdateien auffindig machen können? |
|
|
| |
|
|
|
| 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 ▲ |
|
|
|