![]() |
Anzeige:
|
|
|||||||
| XProfan Alles rund um die Programmiersprache XProfan. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#16 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 03.01.2010
Ort: Saarland
Beiträge: 103
|
Hallo Andreas,
sieht gut aus . Setrop2 ist aber flexibler. Durch die verschiedenen Modi kann man mehr Effekte erzielen. Beispielsweise müßte das Verschieben eines gerade gezeichneten Bereichs auch machbar sein. |
|
|
|
|
|
#17 (Direktlink) | |
|
Stammuser
![]() Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
|
Zitat:
dann musst Du mit Regionen arbeiten.
__________________
Gruss Andreas ______________________ http://www.ampsoft.eu Profan 3.3 - XProfanX2 Windows 95,98,ME,2000,XP Vista - Windows 7 32 / 64 Bit ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher Geändert von Andreas Miethe (25.04.2011 um 11:39 Uhr) |
|
|
|
|
|
|
#18 (Direktlink) | |
|
Stammuser
![]() Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
|
Zitat:
Code:
$H Windows.ph
$H Messages.ph
Windowstyle 520
cls
'Pfad anpassen
Loadbmp "Creek.jpg",0,0;0
Struct GdiplusStartupInput = GdiplusVersion&,DebugEventCallback&,SuppressBackgroundThread&,SuppressExternalCodecs&
Struct RECT = left&,top&,right&,bottom&
Declare Ende&,startx&,starty&
Var R# = New(RECT)
Usermessages ~WM_LBUTTONDOWN,~WM_RBUTTONDOWN,~WM_MOUSEMOVE,~WM_LBUTTONUP
Var GDIPlus& = ImportDll("GDIPLUS.DLL","")
Var GDIPlusToken& = InitGdiPlus()
Var Canvas& = 0
Var RedPen& = 0
Var BrushObject& = 0
GdipCreateFromHDC(%hdc,ADDR(Canvas&))'alle Graphics-Operationen auf %HDC
'semitransparenten Brush anlegen
GdipCreateSolidFill(MakeColor(128,192,192,192),Addr(BrushObject&))
Whilenot Ende&
WaitInput
If %key= 2
Ende& = 1
Endif
If %UMessage = ~WM_LBUTTONDOWN
Usebrush 0,0
Usepen 0,2,$0000FF
startx&=Loword(&ULParam)
starty&=HiWord(&ULParam)
~SetRect(R#,0,0,0,0)
ElseIf (%UMessage = ~WM_MOUSEMOVE) and (&UWParam = ~MK_LBUTTON)
IfNot ~IsRectEmpty(r#)
~BitBlt(%hdc,R#.Left&-1,R#.Top&-1,R#.right&+2-r#.left&,R#.bottom&+2-r#.top&,%hdc2,R#.Left&-1,R#.Top&-1,~SRCCOPY)
endif
'Richtung ermitteln
'##################
if (startx& < LOWORD(&ulParam)) AND (starty& > HIWORD(&ulParam))
~SetRect(R#,startx&,HIWORD(&ulParam),LOWORD(&ulParam),starty&)
elseif (startx& > LOWORD(&ulParam)) and (starty& > HIWORD(&ulParam))
~SetRect(R#,LOWORD(&ulParam),HIWORD(&ulParam),startx&,starty&)
elseif (startx& > LOWORD(&ulParam)) AND (starty& < HIWORD(&ulParam))
~SetRect(R#,LOWORD(&ulParam),starty&,startx&,HIWORD(&ulParam))
else
~SetRect(R#,startx&,starty&, LOWORD(&ulParam),HIWORD(&ulParam))
endif
~Rectangle(%hdc,R#.Left&,R#.Top&,R#.right&,R#.bottom&)
GdipFillRectangleI(Canvas&,BrushObject&,R#.Left&,R#.Top&,R#.right&-R#.Left&,R#.bottom&-R#.Top&)
elseif %UMessage = ~WM_LBUTTONUP
'###################
'HDC2 überschreiben
'###################
Rectangle R#.Left&,R#.Top& - R#.right&,R#.bottom&
Repaint
Endif
EndWhile
GdipDeleteBrush(BrushObject&)
GdipDeleteGraphics(Canvas&)
ExitGDIPlus(gdiplusToken&)
End
Proc InitGDIPlus
Declare gdiplusToken&
Var gdpsi# = New(GdiplusStartupInput)
gdpsi#.GdiplusVersion& = 1
gdpsi#.DebugEventCallback& = 0
gdpsi#.SuppressBackgroundThread& = 0
gdpsi#.SuppressExternalCodecs& = 0
GdiplusStartup(ADDR(gdiplusToken&),gdpsi#,0)
Dispose gdpsi#
Return gdiplusToken&
EndProc
Proc ExitGDIPlus
Parameters gdiplusToken&
GdiplusShutdown(gdiplusToken&)
FreeDLL GDIPlus&
Endproc
Proc MakeColor
Parameters a&,r&,g&,b&
Declare Result&
Result& = b& | g& << 8 | r& << 16 | a& << 24
Return Result&
EndProc
__________________
Gruss Andreas ______________________ http://www.ampsoft.eu Profan 3.3 - XProfanX2 Windows 95,98,ME,2000,XP Vista - Windows 7 32 / 64 Bit ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher |
|
|
|
|
|
|
#19 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Zitat:
%hdc2 ist eh immer eine schöne Sache.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
#20 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 03.01.2010
Ort: Saarland
Beiträge: 103
|
Hallo Andreas,
sieht hervorragend aus. Bei Autocad wird sowas zum Markieren benutzt. |
|
|
|
|
|
|
#21 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 03.01.2010
Ort: Saarland
Beiträge: 103
|
Habe ein wenig mit dem Halbtransparenten Beispiel rumgespielt.
Ellipsen etc sind kein Problem. Gibt es im GDIPlus eine Entsprechung zu setprop2 ? Eine Funktion um die Kopiermodi einzustellen. |
|
|
|
|
|
#22 (Direktlink) | |
|
Stammuser
![]() Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
|
Zitat:
Auf jeden Fall bietet GDI+ sehr viele Möglichkeiten.
__________________
Gruss Andreas ______________________ http://www.ampsoft.eu Profan 3.3 - XProfanX2 Windows 95,98,ME,2000,XP Vista - Windows 7 32 / 64 Bit ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher |
|
|
|
|
|
|
#23 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 03.01.2010
Ort: Saarland
Beiträge: 103
|
Vielleicht
graphics.SetCompositingMode(CompositingModeSourceOver); Ich kann aber den Wert für CompositingModeSourceOver nirgends finden . Vielleicht hat ja einer die GDIP Headerdateien , in der der Wert drinsteht. |
|
|
|
|
|
#24 (Direktlink) | |
|
Stammuser
![]() Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
|
Zitat:
Code als PH speichern, dann hast Du eine Header-Datei. Code:
GdiplusStartupInput = GdiplusVersion&,DebugEventCallback&,SuppressBackgroundThread&,SuppressExternalCodecs&;
'Encoder-Parameters
EncoderCompression = "{e09d739d-ccd4-44ee-8eba-3fbf8be4fc58}";
EncoderColorDepth = "{66087055-ad66-4c7c-9a18-38a2310b8337}";
EncoderScanMethod = "{3a4e2661-3109-4e56-8536-42c156e7dcfa}";
EncoderVersion = "{24d18c76-814a-41a4-bf53-1c219cccf797}";
EncoderRenderMethod = "{6d42c53a-229a-4825-8bb7-5c99e2b9a8b8}";
EncoderQuality = "{1d5be4b5-fa4a-452d-9cdd-5db35105e7eb}";
EncoderTransformation = "{8d0eb2d1-a58e-4ea8-aa14-108074b7b6f9}";
EncoderLuminanceTable = "{edb33bce-0266-4a77-b904-27216099e717}";
EncoderChrominanceTable = "{f2e455dc-09b3-4316-8260-676ada32481c}";
EncoderSaveFlag = "{292266fc-ac40-47bf-8cfc-a85b89a655de}";
'Image file format identifiers
ImageFormatUndefined = "{b96b3ca9-0728-11d3-9d7b-0000f81ef32e}";
ImageFormatMemoryBMP = "{b96b3caa-0728-11d3-9d7b-0000f81ef32e}";
ImageFormatBMP = "{b96b3cab-0728-11d3-9d7b-0000f81ef32e}";
ImageFormatEMF = "{b96b3cac-0728-11d3-9d7b-0000f81ef32e}";
ImageFormatWMF = "{b96b3cad-0728-11d3-9d7b-0000f81ef32e}";
ImageFormatJPEG = "{b96b3cae-0728-11d3-9d7b-0000f81ef32e}";
ImageFormatPNG = "{b96b3caf-0728-11d3-9d7b-0000f81ef32e}";
ImageFormatGIF = "{b96b3cb0-0728-11d3-9d7b-0000f81ef32e}";
ImageFormatTIFF = "{b96b3cb1-0728-11d3-9d7b-0000f81ef32e}";
ImageFormatEXIF = "{b96b3cb2-0728-11d3-9d7b-0000f81ef32e}";
ImageFormatIcon = "{b96b3cb5-0728-11d3-9d7b-0000f81ef32e}";
'RotateFlipTypes
RotateNoneFlipNone = 0;
Rotate90FlipNone = 1;
Rotate180FlipNone = 2;
Rotate270FlipNone = 3;
RotateNoneFlipX = 4;
Rotate90FlipX = 5;
Rotate180FlipX = 6;
Rotate270FlipX = 7;
'Quality Modes
QualityModeInvalid = -1;
QualityModeDefault = 0;
QualityModeLow = 1;
QualityModeHigh = 2;
'Interpolation Modes
InterpolationModeInvalid = ~QualityModeInvalid;
InterpolationModeDefault = ~QualityModeDefault;
InterpolationModeLowQuality = ~QualityModeLow;
InterpolationModeHighQuality = ~QualityModeHigh;
InterpolationModeBilinear = 3;
InterpolationModeBicubic = 4;
InterpolationModeNearestNeighbor = 5;
InterpolationModeHighQualityBilinear = 6;
InterpolationModeHighQualityBicubic = 7;
'Smooting Modes
SmoothingModeInvalid = ~QualityModeInvalid;
SmoothingModeDefault = ~QualityModeDefault;
SmoothingModeHighSpeed = ~QualityModeLow;
SmoothingModeHighQuality = ~QualityModeHigh;
SmoothingModeNone = 3;
SmoothingModeAntiAlias = 4;
'Units
UnitWorld = 0;' -- World coordinate (non-physical unit)
UnitDisplay = 1;' -- Variable -- for PageTransform only
UnitPixel = 2;' -- Each unit is one device pixel.
UnitPoint = 3;' -- Each unit is a printer's point, or 1/72 inch.
UnitInch = 4;' -- Each unit is 1 inch.
UnitDocument = 5;' -- Each unit is 1/300 inch.
UnitMillimeter = 6;' -- Each unit is 1 millimeter.
'Region Combine Modes
CombineModeReplace = 0;
CombineModeIntersect = 1;
CombineModeUnion = 2;
CombineModeXor = 3;
CombineModeExclude = 4;
CombineModeComplement = 5;
'Encoder-Enums
EncoderValueColorTypeCMYK = 0;
EncoderValueColorTypeYCCK = 1;
EncoderValueCompressionLZW = 2;
EncoderValueCompressionCCITT3 = 3;
EncoderValueCompressionCCITT4 = 4;
EncoderValueCompressionRle = 5;
EncoderValueCompressionNone = 6;
EncoderValueScanMethodInterlaced = 7;
EncoderValueScanMethodNonInterlaced = 8;
EncoderValueVersionGif87 = 9;
EncoderValueVersionGif89 = 10;
EncoderValueRenderProgressive = 11;
EncoderValueRenderNonProgressive = 12;
EncoderValueTransformRotate90 = 13;
EncoderValueTransformRotate180 = 14;
EncoderValueTransformRotate270 = 15;
EncoderValueTransformFlipHorizontal = 16;
EncoderValueTransformFlipVertical = 17;
EncoderValueMultiFrame = 18;
EncoderValueLastFrame = 19;
EncoderValueFlush = 20;
EncoderValueFrameDimensionTime = 21;
EncoderValueFrameDimensionResolution = 22;
EncoderValueFrameDimensionPage = 23;
'Pixel - Formats
PixelFormatIndexed = $00010000;' Indexes into a palette
PixelFormatGDI = $00020000;' Is a GDI-supported format
PixelFormatAlpha = $00040000;' Has an alpha component
PixelFormatPAlpha = $00080000;' Uses pre-multiplied alpha
PixelFormatExtended = $00100000;' Uses extended color (16 bits per channel)
PixelFormatCanonical = $00200000;' ?
PixelFormatUndefined = 0;
PixelFormatDontCare = 0;
PixelFormat1bppIndexed = OR(OR(OR(1,(1<<8)),~PixelFormatIndexed),~PixelFormatGDI);
PixelFormat4bppIndexed = OR(OR(OR(2,(4<<8)),~PixelFormatIndexed),~PixelFormatGDI);
PixelFormat8bppIndexed = OR(OR(OR(3,(8<<8)),~PixelFormatIndexed),~PixelFormatGDI);
PixelFormat16bppGrayScale = OR(OR(4,(16<<8)),~PixelFormatExtended);
PixelFormat16bppRGB555 = OR(OR(5,(16<<8)),~PixelFormatGDI);
PixelFormat16bppRGB565 = OR(OR(6,(16<<8)),~PixelFormatGDI);
PixelFormat16bppARGB1555 = OR(OR(OR(7,(16<<8)),~PixelFormatAlpha,~PixelFormatGDI);
PixelFormat24bppRGB = OR(OR(8,(24<<8)),~PixelFormatGDI);
PixelFormat32bppRGB = OR(OR(9,(32<<8)),~PixelFormatGDI);
PixelFormat32bppARGB = OR(OR(OR(OR(10,(32<<8)),~PixelFormatAlpha),~PixelFormatGDI),~PixelFormatCanonical);
PixelFormat32bppPARGB = OR(OR(OR(OR(11,(32<<8)),~PixelFormatAlpha),~PixelFormatPAlpha),~PixelFormatGDI);
PixelFormat48bppRGB = OR(OR(12,(48<<8)),~PixelFormatExtended);
PixelFormat64bppARGB = OR(OR(OR(OR(13,(64<<8)),~PixelFormatAlpha),~PixelFormatCanonical),~PixelFormatExtended);
PixelFormat64bppPARGB = OR(OR(OR(OR(14,(64<<8)),~PixelFormatAlpha),~PixelFormatPAlpha),~PixelFormatExtended);
PixelFormatMax = 15;
'EncoderParameterValueType - Enums
EncoderParameterValueTypeByte = 1;
EncoderParameterValueTypeASCII = 2;
EncoderParameterValueTypeShort = 3;
EncoderParameterValueTypeLong = 4;
EncoderParameterValueTypeRational = 5;
EncoderParameterValueTypeLongRange = 6;
EncoderParameterValueTypeUndefined = 7;
EncoderParameterValueTypeRationalRange = 8;
'Status - Enums
Ok = 0;
GenericError = 1;
InvalidParameter = 2;
OutOfMemory = 3;
ObjectBusy = 4;
InsufficientBuffer = 5;
NotImplemented = 6;
Win32Error = 7;
WrongState = 8;
Aborted = 9;
FileNotFound = 10;
ValueOverflow = 11;
AccessDenied = 12;
UnknownImageFormat = 13;
FontFamilyNotFound = 14;
FontStyleNotFound = 15;
NotTrueTypeFont = 16;
UnsupportedGdiplusVersion = 17;
GdiplusNotInitialized = 18;
PropertyNotFound = 19;
PropertyNotSupported = 20;
'DashStyle - Enums
DashStyleSolid = 0;
DashStyleDash = 1;
DashStyleDot = 2;
DashStyleDashDot = 3;
DashStyleDashDotDot = 4;
DashStyleCustom = 5;
'PenAlignment - Enums
PenAlignmentCenter = 0;
PenAlignmentInset = 1;
PenAlignmentOutset = 2;
PenAlignmentLeft = 3;
PenAlignmentRight = 4;
'LineCap - Enums
LineCapFlat = 0;
LineCapSquare = 1;
LineCapRound = 2;
LineCapTriangle = 3;
LineCapNoAnchor = $10;
LineCapSquareAnchor = $11;
LineCapRoundAnchor = $12;
LineCapDiamondAnchor = $13;
LineCapArrowAnchor = $14;
LineCapCustom = $ff;
LineCapAnchorMask = $f0;
'ColorAdjustType-Enums
ColorAdjustTypeDefault = 0;
ColorAdjustTypeBitmap = 1;
ColorAdjustTypeBrush = 2;
ColorAdjustTypePen = 3;
ColorAdjustTypeText = 4;
ColorAdjustTypeCount = 5;
ColorAdjustTypeAny = 6;
'Wrap-Modes
WrapModeTile = 0;
WrapModeTileFlipX = 1;
WrapModeTileFlipY = 2;
WrapModeTileFlipXY = 3;
WrapModeClamp = 4;
'FontStyle -Enums
FontStyleRegular = 0;
FontStyleBold = 1;
FontStyleItalic = 2;
FontStyleBoldItalic = 3;
FontStyleUnderline = 4;
FontStyleStrikeout = 8;
'Matrix-Order - Enum
MatrixOrderPrepend = 0;
MatrixOrderAppend = 1;
'CompositingMode
CompositingModeSourceOver = 0;
CompositingModeSourceCopy = 1;
__________________
Gruss Andreas ______________________ http://www.ampsoft.eu Profan 3.3 - XProfanX2 Windows 95,98,ME,2000,XP Vista - Windows 7 32 / 64 Bit ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|