|
Accueil → WINDEV 25 → WX - Classe GDI+ (Graphics Device Interface / Interface gráfica de dispositivo) |
WX - Classe GDI+ (Graphics Device Interface / Interface gráfica de dispositivo) |
Débuté par adrianoboller, 17 mar. 2016 18:14 - 37 réponses |
| |
| | | |
|
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 18:14 |
Interface gráfica de dispositivo
O Graphics Device Interface (GDI) é um Microsoft Windows interface de programação de aplicação de componentes e sistema operacional principal responsável por representar objetos gráficos e transmiti-las para dispositivos de saída , tais como monitores e impressoras .
GDI é responsável por tarefas como desenhar linhas e curvas, tornando fontes e manipulação paletas . Não é diretamente responsável por janelas, menus, etc desenho .; essa tarefa é reservada para o usuário do subsistema, que reside no user32.dll e é construído em cima de GDI. Outros sistemas têm componentes que são semelhantes aos GDI, por exemplo, do Mac OS X Quartz e X Window System 's Xlib / XCB.
Vantagens mais significativas do GDI sobre métodos mais diretos de acesso ao hardware são, talvez, as suas capacidades de escala e sua representação abstrata de dispositivos de destino. Usando GDI, é muito fácil de extrair em vários dispositivos, tais como uma tela e uma impressora, e esperar a reprodução adequada em cada caso. Esta capacidade está no centro da maioria que você vê é o que você começa aplicações para Microsoft Windows.
Os jogos simples que não exigem rápida renderização de gráficos pode usar GDI. No entanto, GDI é relativamente difícil de usar para a animação avançado, e não tem uma noção para sincronizar com individuais quadros de vídeo na placa de vídeo , carece de hardware para 3D, etc. Os jogos modernos costumam usar DirectX ou OpenGL em vez disso, que permitem que programadores explorar os recursos de hardware moderno.
Segue abaixo a Classe GDI Wx:
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 18:32 |
Adjustable Arrow Cap
Inicializa uma nova instância do AdjustableArrowCap classe com largura especificada, altura e propriedade de preenchimento. Se uma tampa de extremidade da seta é preenchida depende do argumento passado para o isFilled parâmetro.
https://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.adjustablearrowcap%28v=vs.110%29.aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms533967%28v=vs.85%29.aspx
AdjustableArrowCap Construtor (Single, Single, Boolean)
SEGUE CÓDIGO:
AdjustableArrowCap est une Classe hérite de CustomLineCap FIN
Procedure Constructeur(height est un réel sur 4 = 0, width est un réel sur 4 = 0, isFilled est un booléen = Vrai)
nPtr est un entier système GdipCreateAdjustableArrowCap(height, width, isFilled, &nPtr) GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure Height()
rHeight est un réel sur 4 GdipGetAdjustableArrowCapHeight(Pointer, rHeight) RENVOYER rHeight
Procedure Height(rValeur est un réel sur 4)
GdipSetAdjustableArrowCapHeight(Pointer, rValeur)
Procedure Width()
rWidth est un réel sur 4 GdipGetAdjustableArrowCapWidth(Pointer, rWidth) RENVOYER rWidth
Procedure Width(rValeur est un réel sur 4)
GdipSetAdjustableArrowCapWidth(Pointer, rValeur)
Procedure Filled()
bFilled est un booléen GdipGetAdjustableArrowCapFillState(Pointer, &bFilled)
RENVOYER bFilled
Procedure Filled(bValeur est un booléen)
GdipSetAdjustableArrowCapFillState(Pointer, bValeur)
Procedure MiddleInset()
rMiddleInset est un réel sur 4 GdipGetAdjustableArrowCapMiddleInset(Pointer, &rMiddleInset) RENVOYER rMiddleInset
Procedure MiddleInset(rValeur est un réel sur 4)
GdipSetAdjustableArrowCapMiddleInset(Pointer, rValeur)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un AdjustableArrowCap dynamique = allouer un AdjustableArrowCap GdipCloneCustomLineCap(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 19:30 |
Bitmap
Um bitmap é uma série de pontos (bits) dispostos como um mapa para que, quando colocados juntos, eles produzem uma imagem que pode ser escrito, copiado de, re-arranjadas, mudou, manipuladas ou armazenadas como aa arquivo de computador. Os mapas de bits são usados para exibir imagens em aplicações gráficas, processadores de texto, arquivos de banco de dados, ou apresentações de audiência. Para exibir seu produto em um dispositivo, como um monitor ou uma impressora, um bitmap mantém algumas propriedades e segue um conjunto de regras.
Existem vários tipos de mapas de bits, com base no número de cores que o mapa de bits pode mostrar. Primeiro de tudo, um mapa de bits pode ser monocromática, caso em que cada pixel corresponde a um bit. Um mapa de bits, também pode ser colorido. O número de cores que podem exibir um mapa de bits é igual a dois elevado à série de poços / pixel. Por exemplo, um bitmap simples usa apenas 4 pontos / pixel ou 4 bpp pode lidar com apenas 2 4 = 16 cores. Um bitmap mais avançada que requer 8 bpp pode lidar com 2 8 = 256 cores. Os mapas de bits são divididos em duas categorias que controlam a sua disponibilidade para exibir em um dispositivo.
Um bitmap independente de dispositivo (DIB) é um bitmap que é projetado para ser carregado em qualquer aplicativo ou exibição em qualquer dispositivo e produzir o mesmo efeito visual. Para tornar isso possível, tal bitmap contém uma tabela de cores que descreve como as cores do bitmap deve ser usado em pixels quando exibi-lo. As características de um DIB são definidos pela estrutura BITMAPINFO.
Um mapa de bits dependentes do dispositivo (DDB) é criado um mapa de bits da estrutura de bitmap usando as dimensões do mapa de bits.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms534420%28v=vs.85%29.aspx
http://www.codeproject.com/Articles/356/Bitmap-Basics-A-GDI-tutorial
https://www-user.tu-chemnitz.de/~heha/petzold/ch14e.htm
https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/Graphics-Win32-GDI-Bitmap.html
http://www.winprog.org/tutorial/bitmaps.html
http://www.functionx.com/win32/Lesson14.htm
Imagem para você se motivar e treinar:
Classe Bitmap
Bitmap est une Classe hérite de Image FIN
Procedure Constructeur(nWidth est un entier = 0, nHeight est un entier = 0, format est un entier = PixelFormat32bppARGB)
nPtr est un entier système SI MesParamètres..NbReçus > 0 ALORS GdipCreateBitmapFromScan0(nWidth, nHeight, 0, format, Null, &nPtr) FIN Image.Constructeur(nPtr)
Procedure Destructeur()
Procedure Histogram()
stHistogram est un HistogramData nCount est un entier GdipBitmapGetHistogramSize(Pointer, &nCount) Dimension(stHistogram.channel0, nCount) Dimension(stHistogram.channel1, nCount) Dimension(stHistogram.channel2, nCount) Dimension(stHistogram.channel0, nCount)
GdipBitmapGetHistogram(Pointer, HistogramFormatARGB, nCount, &stHistogram.channel0, &stHistogram.channel1, &stHistogram.channel2, &stHistogram.channel3) RENVOYER stHistogram
Procedure PRIVÉE Histogram(v <utile>)
Procedure GLOBALE FromImage(pclimage est un Image dynamique)
pclObjet est un Bitmap dynamique = allouer un Bitmap(pclimage.Width, pclimage.Height, pclimage.PixelFormat)
RENVOYER pclObjet
Procedure GLOBALE fromFile(filename est une chaîne, bICM est un booléen = Faux)
nPtr est un entier système pclObjet est un Bitmap dynamique = allouer un Bitmap u est une chaîne UNICODE = filename
SI bICM ALORS GdipCreateBitmapFromFileICM(&u, &nPtr) SINON GdipCreateBitmapFromFile(&u, &nPtr) FIN pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE FromMemory(buffer est un Buffer, bICM est un booléen = Faux)
nPtr est un entier système pclObjet est un Bitmap dynamique = allouer un Bitmap nPtrStream est un entier système nPtrGlobal est un entier système nPtrGlobal = API("kernel32", "GlobalAlloc", 0x0040, Taille(buffer)) Transfert(nPtrGlobal, &buffer, Taille(buffer)) API("ole32", "CreateStreamOnHGlobal", nPtrGlobal, Vrai, &nPtrStream) SI bICM ALORS GdipCreateBitmapFromStreamICM(nPtrStream, &nPtr) SINON GdipCreateBitmapFromStream(nPtrStream, &nPtr) FIN AppelInterface(nPtrStream, 2) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE FromScan0(nWidth est un entier, nHeight est un entier, stride est un entier, format est un entier, buffer est un entier système)
nPtr est un entier système pclObjet est un Bitmap dynamique = allouer un Bitmap
GdipCreateBitmapFromScan0(nWidth, nHeight, stride, format, buffer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GetPixel(x est un entier, y est un entier)
argb est un entier pclColor est un Color dynamique = allouer un Color GdipBitmapGetPixel(Pointer, x, y, &argb) pclColor.Value = argb RENVOYER pclColor
Procedure SetPixel(x est un entier, y est un entier, Color est un Color)
GdipBitmapSetPixel(Pointer, x, y, Color.Value)
Procedure GLOBALE FromHicon(hicon est un entier système)
nPtr est un entier système pclObjet est un Bitmap dynamique = allouer un Bitmap
GdipCreateBitmapFromHICON(hicon, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE FromResource(hinstance est un entier système, bitmapName est une chaîne)
nPtr est un entier système u est une chaîne UNICODE = bitmapName pclObjet est un Bitmap dynamique = allouer un Bitmap
GdipCreateBitmapFromResource(hinstance, &bitmapName, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GetHicon()
nHIco est un entier système
GdipCreateHICONFromBitmap(Pointer, &nHIco) RENVOYER nHIco
Procedure LockBits(rect est un RECT, flags est un entier, format est un entier)
st est un BitmapData GdipBitmapLockBits(Pointer, &rect, flags, format, &st) RENVOYER st
Procedure MakeTransparent(transpColor est un Color dynamique = GetPixel(0, 0))
pclBmp est un Bitmap dynamique = allouer un Bitmap(Width, Height, PixelFormat32bppARGB) g est un Graphics dynamique = Graphics.FromImage(pclBmp) dstRect est un RECT = [0, 0, Width, Height] imgAtt est un ImageAttributes dynamique = allouer un ImageAttributes imgAtt.SetColorKey(transpColor, transpColor) g.DrawImage(objet, 0, 0, Width, Height, dstRect.X, dstRect.Y, dstRect.Width, dstRect.Height, UnitPixel, imgAtt)
Pointer <=> pclBmp.Pointer g.Dispose() pclBmp.Dispose() imgAtt.Dispose()
Procedure SetResolution(x est un réel sur 4, y est un réel sur 4)
GdipBitmapSetResolution(Pointer, x, y)
Procedure UnlockBits(bdata est un BitmapData)
GdipBitmapUnlockBits(Pointer, &bdata)
Procedure ApplyEffect(Effect est un Effect dynamique, RECT est un RECT dynamique = Null)
GdipBitmapApplyEffect(Pointer, Effect.Pointer, (RECT = Null ? Null SINON RECT), Faux, Null, Null)
Procedure GLOBALE fromURL(sURL est une chaîne, bICM est un booléen = Faux)
nPtr est un entier système pclObjet est un Bitmap dynamique = allouer un Bitmap nPtrStream est un entier système nPtrGlobal est un entier système buffer est un Buffer HTTPRequête(sURL) buffer = HTTPDonneRésultat(httpRésultat) nPtrGlobal = API("kernel32", "GlobalAlloc", 0x0040, Taille(buffer)) Transfert(nPtrGlobal, &buffer, Taille(buffer)) API("ole32", "CreateStreamOnHGlobal", nPtrGlobal, Vrai, &nPtrStream) SI bICM ALORS GdipCreateBitmapFromStreamICM(nPtrStream, &nPtr) SINON GdipCreateBitmapFromStream(nPtrStream, &nPtr) FIN AppelInterface(nPtrStream, 2) pclObjet.Pointer = nPtr RENVOYER pclObjet
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 20:22 |
Prezados,
Outros recursos do BITMAP a serem feitos para Wx:
Graphics.Win32.GDI.Bitmap https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/Graphics-Win32-GDI-Bitmap.html
type RasterOp3 = Word32 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Types.html…
type RasterOp4 = Word32 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Types.html…
sRCCOPY :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
sRCPAINT :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
sRCAND :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
sRCINVERT :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
sRCERASE :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
nOTSRCCOPY :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
nOTSRCERASE :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
mERGECOPY :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
mERGEPAINT :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
pATCOPY :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
pATPAINT :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
pATINVERT :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
dSTINVERT :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
bLACKNESS :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
wHITENESS :: RasterOp3 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
mAKEROP4 :: RasterOp3 -> RasterOp3 -> RasterOp4 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Types.html…
type BITMAP = (INT, INT, INT, INT, WORD, WORD, LPVOID) https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
type LPBITMAP = Ptr BITMAP https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
setBITMAP :: LPBITMAP -> BITMAP -> IO () https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
deleteBitmap :: HBITMAP -> IO () https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
createCompatibleBitmap :: HDC -> Int32 -> Int32 -> IO HBITMAP https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
createBitmap :: INT -> INT -> UINT -> UINT -> Maybe LPVOID -> IO HBITMAP https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
createBitmapIndirect :: LPBITMAP -> IO HBITMAP https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
createDIBPatternBrushPt :: LPVOID -> ColorFormat -> IO HBRUSH https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
getBitmapDimensionEx :: HBITMAP -> IO SIZE https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
setBitmapDimensionEx :: HBITMAP -> SIZE -> IO SIZE https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
getBitmapInfo :: HBITMAP -> IO BITMAP https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
type BitmapCompression = DWORD https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
bI_RGB :: BitmapCompression https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
bI_RLE8 :: BitmapCompression https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
bI_RLE4 :: BitmapCompression https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
bI_BITFIELDS :: BitmapCompression https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
type ColorFormat = DWORD https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
dIB_PAL_COLORS :: ColorFormat https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
dIB_RGB_COLORS :: ColorFormat https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
type LPBITMAPINFO = Ptr () https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
type BITMAPINFOHEADER = (DWORD, LONG, LONG, WORD, WORD, BitmapCompression, DWORD, LONG, LONG, Maybe DWORD, Maybe DWORD) https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
type LPBITMAPINFOHEADER = Ptr BITMAPINFOHEADER https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
getBITMAPINFOHEADER_ :: LPBITMAPINFOHEADER -> IO BITMAPINFOHEADER https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…_
type BITMAPFILEHEADER = (WORD, DWORD, WORD, WORD, DWORD) https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
type LPBITMAPFILEHEADER = Ptr BITMAPFILEHEADER https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
getBITMAPFILEHEADER :: LPBITMAPFILEHEADER -> IO BITMAPFILEHEADER https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
sizeofBITMAP :: Word32 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
sizeofBITMAPINFO :: Word32 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
sizeofBITMAPINFOHEADER :: Word32 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
sizeofBITMAPFILEHEADER :: Word32 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
sizeofLPBITMAPFILEHEADER :: Word32 https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
createBMPFile :: String -> HBITMAP -> HDC -> IO () https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
cBM_INIT :: DWORD https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
getDIBits :: HDC -> HBITMAP -> INT -> INT -> Maybe LPVOID -> LPBITMAPINFO -> ColorFormat -> IO INT https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
setDIBits :: HDC -> HBITMAP -> INT -> INT -> LPVOID -> LPBITMAPINFO -> ColorFormat -> IO INT https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
createDIBitmap :: HDC -> LPBITMAPINFOHEADER -> DWORD -> LPVOID -> LPBITMAPINFO -> ColorFormat -> IO HBITMAP https://downloads.haskell.org/~ghc/7.0.1/docs/html/libraries/Win32-2.2.0.1/src/Graphics-Win32-GDI-Bitmap.html…
Seria interessante fazer esse complemento na classe Bitmap exposta acima.
Bons estudos
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 20:24 |
{-# LINE 1 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-}
{-# LINE 2 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-}
module Graphics.Win32.GDI.Bitmap( RasterOp3, RasterOp4, sRCCOPY, sRCPAINT, sRCAND, sRCINVERT, sRCERASE, nOTSRCCOPY, nOTSRCERASE, mERGECOPY, mERGEPAINT, pATCOPY, pATPAINT, pATINVERT, dSTINVERT, bLACKNESS, wHITENESS,
mAKEROP4,
BITMAP, LPBITMAP, setBITMAP, deleteBitmap, createCompatibleBitmap, createBitmap, createBitmapIndirect, createDIBPatternBrushPt, getBitmapDimensionEx, setBitmapDimensionEx, getBitmapInfo,
BitmapCompression, bI_RGB, bI_RLE8, bI_RLE4, bI_BITFIELDS,
ColorFormat, dIB_PAL_COLORS, dIB_RGB_COLORS,
LPBITMAPINFO, BITMAPINFOHEADER, LPBITMAPINFOHEADER, getBITMAPINFOHEADER_,
BITMAPFILEHEADER, LPBITMAPFILEHEADER, getBITMAPFILEHEADER,
sizeofBITMAP, sizeofBITMAPINFO, sizeofBITMAPINFOHEADER, sizeofBITMAPFILEHEADER, sizeofLPBITMAPFILEHEADER,
createBMPFile, cBM_INIT, getDIBits, setDIBits, createDIBitmap
) WHERE
import System.Win32.Types import Graphics.Win32.GDI.Types
import Control.Monad (liftM) import Foreign import Foreign.C
{-# LINE 89 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-}
{-# LINE 90 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-}
sRCCOPY :: RasterOp3 sRCCOPY = 13369376 sRCPAINT :: RasterOp3 sRCPAINT = 15597702 sRCAND :: RasterOp3 sRCAND = 8913094 sRCINVERT :: RasterOp3 sRCINVERT = 6684742 sRCERASE :: RasterOp3 sRCERASE = 4457256 nOTSRCCOPY :: RasterOp3 nOTSRCCOPY = 3342344 nOTSRCERASE :: RasterOp3 nOTSRCERASE = 1114278 mERGECOPY :: RasterOp3 mERGECOPY = 12583114 mERGEPAINT :: RasterOp3 mERGEPAINT = 12255782 pATCOPY :: RasterOp3 pATCOPY = 15728673 pATPAINT :: RasterOp3 pATPAINT = 16452105 pATINVERT :: RasterOp3 pATINVERT = 5898313 dSTINVERT :: RasterOp3 dSTINVERT = 5570569 bLACKNESS :: RasterOp3 bLACKNESS = 66 wHITENESS :: RasterOp3 wHITENESS = 16711778
{-# LINE 164 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-}
type BITMAP = ( int , int , int , int , WORD , WORD , LPVOID )
peekBITMAP :: Ptr BITMAP -> IO BITMAP peekBITMAP p = DO ty <- (\hsc_ptr -> peekByteOff hsc_ptr 0) p {-# LINE 182 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} width <- (\hsc_ptr -> peekByteOff hsc_ptr 4) p {-# LINE 183 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} height <- (\hsc_ptr -> peekByteOff hsc_ptr 8) p {-# LINE 184 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} wbytes <- (\hsc_ptr -> peekByteOff hsc_ptr 12) p {-# LINE 185 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} planes <- (\hsc_ptr -> peekByteOff hsc_ptr 16) p {-# LINE 186 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} pixel <- (\hsc_ptr -> peekByteOff hsc_ptr 18) p {-# LINE 187 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} bits <- (\hsc_ptr -> peekByteOff hsc_ptr 20) p {-# LINE 188 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} RETURN (ty, width, height, wbytes, planes, pixel, bits)
pokeBITMAP :: Ptr BITMAP -> BITMAP -> IO () pokeBITMAP p (ty, width, height, wbytes, planes, pixel, bits) = DO (\hsc_ptr -> pokeByteOff hsc_ptr 0) p ty {-# LINE 193 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} (\hsc_ptr -> pokeByteOff hsc_ptr 4) p width {-# LINE 194 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} (\hsc_ptr -> pokeByteOff hsc_ptr 8) p height {-# LINE 195 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} (\hsc_ptr -> pokeByteOff hsc_ptr 12) p wbytes {-# LINE 196 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} (\hsc_ptr -> pokeByteOff hsc_ptr 16) p planes {-# LINE 197 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} (\hsc_ptr -> pokeByteOff hsc_ptr 18) p pixel {-# LINE 198 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} (\hsc_ptr -> pokeByteOff hsc_ptr 20) p bits {-# LINE 199 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-}
type LPBITMAP = Ptr BITMAP
setBITMAP :: LPBITMAP -> BITMAP -> IO () setBITMAP = pokeBITMAP
deleteBitmap :: HBITMAP -> IO () deleteBitmap bitmap = failIfFalse_ "DeleteBitmap" $ c_DeleteBitmap bitmap foreign import STDCALL unsafe "windows.h DeleteObject" c_DeleteBitmap :: HBITMAP -> IO Bool
createBitmap :: int -> int -> UINT -> UINT -> Maybe LPVOID -> IO HBITMAP createBitmap w h planes bits mb_color_data = failIfNull "CreateBitmap" $ c_CreateBitmap w h planes bits (maybePtr mb_color_data) foreign import STDCALL unsafe "windows.h CreateBitmap" c_CreateBitmap :: int -> int -> UINT -> UINT -> LPVOID -> IO HBITMAP
createBitmapIndirect :: LPBITMAP -> IO HBITMAP createBitmapIndirect p_bm = failIfNull "CreateBitmapIndirect" $ c_CreateBitmapIndirect p_bm foreign import STDCALL unsafe "windows.h CreateBitmapIndirect" c_CreateBitmapIndirect :: LPBITMAP -> IO HBITMAP
createCompatibleBitmap :: HDC -> Int32 -> Int32 -> IO HBITMAP createCompatibleBitmap dc w h = failIfNull "CreateCompatibleBitmap" $ c_CreateCompatibleBitmap dc w h foreign import STDCALL unsafe "windows.h CreateCompatibleBitmap" c_CreateCompatibleBitmap :: HDC -> Int32 -> Int32 -> IO HBITMAP
createDIBPatternBrushPt :: LPVOID -> ColorFormat -> IO HBRUSH createDIBPatternBrushPt bm usage = failIfNull "CreateDIBPatternBrushPt" $ c_CreateDIBPatternBrushPt bm usage foreign import STDCALL unsafe "windows.h CreateDIBPatternBrushPt" c_CreateDIBPatternBrushPt :: LPVOID -> ColorFormat -> IO HBRUSH
getBitmapDimensionEx :: HBITMAP -> IO SIZE getBitmapDimensionEx bm = allocaSIZE $ \ p_size -> DO failIfFalse_ "GetBitmapDimensionEx" $ c_GetBitmapDimensionEx bm p_size peekSIZE p_size foreign import STDCALL unsafe "windows.h GetBitmapDimensionEx" c_GetBitmapDimensionEx :: HBITMAP -> Ptr SIZE -> IO Bool
setBitmapDimensionEx :: HBITMAP -> SIZE -> IO SIZE setBitmapDimensionEx bm (cx,cy) = allocaSIZE $ \ p_size -> DO failIfFalse_ "SetBitmapDimensionEx" $ DO c_SetBitmapDimensionEx bm cx cy p_size peekSIZE p_size foreign import STDCALL unsafe "windows.h SetBitmapDimensionEx" c_SetBitmapDimensionEx :: HBITMAP -> LONG -> LONG -> Ptr SIZE -> IO Bool
getBitmapInfo :: HBITMAP -> IO BITMAP getBitmapInfo bm = allocaBytes (fromIntegral sizeofBITMAP) $ \ p_bm -> DO failIfFalse_ "GetBitmapInfo" $ c_GetBitmapInfo bm sizeofBITMAP p_bm peekBITMAP p_bm foreign import STDCALL unsafe "windows.h GetObjectW" c_GetBitmapInfo :: HBITMAP -> DWORD -> LPBITMAP -> IO Bool
type BitmapCompression = DWORD
bI_RGB :: BitmapCompression bI_RGB = 0 bI_RLE8 :: BitmapCompression bI_RLE8 = 1 bI_RLE4 :: BitmapCompression bI_RLE4 = 2 bI_BITFIELDS :: BitmapCompression bI_BITFIELDS = 3
{-# LINE 281 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-}
type ColorFormat = DWORD
dIB_PAL_COLORS :: ColorFormat dIB_PAL_COLORS = 1 dIB_RGB_COLORS :: ColorFormat dIB_RGB_COLORS = 0
{-# LINE 288 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-}
type LPBITMAPINFO = Ptr ()
type BITMAPINFOHEADER = ( DWORD , LONG , LONG , WORD , WORD , BitmapCompression , DWORD , LONG , LONG , Maybe DWORD , Maybe DWORD )
peekBITMAPINFOHEADER :: Ptr BITMAPINFOHEADER -> IO BITMAPINFOHEADER peekBITMAPINFOHEADER p = DO size <- (\hsc_ptr -> peekByteOff hsc_ptr 0) p {-# LINE 316 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} width <- (\hsc_ptr -> peekByteOff hsc_ptr 4) p {-# LINE 317 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} height <- (\hsc_ptr -> peekByteOff hsc_ptr 8) p {-# LINE 318 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} planes <- (\hsc_ptr -> peekByteOff hsc_ptr 12) p {-# LINE 319 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} nbits <- (\hsc_ptr -> peekByteOff hsc_ptr 14) p {-# LINE 320 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} comp <- (\hsc_ptr -> peekByteOff hsc_ptr 16) p {-# LINE 321 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} imsize <- (\hsc_ptr -> peekByteOff hsc_ptr 20) p {-# LINE 322 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} xDensity <- (\hsc_ptr -> peekByteOff hsc_ptr 24) p {-# LINE 323 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} yDensity <- (\hsc_ptr -> peekByteOff hsc_ptr 28) p {-# LINE 324 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} clrUsed <- liftM numToMaybe $ (\hsc_ptr -> peekByteOff hsc_ptr 32) p {-# LINE 325 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} clrImp <- liftM numToMaybe $ (\hsc_ptr -> peekByteOff hsc_ptr 36) p {-# LINE 326 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} RETURN (size, width, height, planes, nbits, comp, imsize, xDensity, yDensity, clrUsed, clrImp)
type LPBITMAPINFOHEADER = Ptr BITMAPINFOHEADER
getBITMAPINFOHEADER_ :: LPBITMAPINFOHEADER -> IO BITMAPINFOHEADER getBITMAPINFOHEADER_ = peekBITMAPINFOHEADER
type BITMAPFILEHEADER = ( WORD , DWORD , WORD , WORD , DWORD )
peekBITMAPFILEHEADER :: Ptr BITMAPFILEHEADER -> IO BITMAPFILEHEADER peekBITMAPFILEHEADER p = DO ty <- (\hsc_ptr -> peekByteOff hsc_ptr 0) p {-# LINE 349 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} size <- (\hsc_ptr -> peekByteOff hsc_ptr 2) p {-# LINE 350 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} res1 <- (\hsc_ptr -> peekByteOff hsc_ptr 6) p {-# LINE 351 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} res2 <- (\hsc_ptr -> peekByteOff hsc_ptr 8) p {-# LINE 352 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} offset <- (\hsc_ptr -> peekByteOff hsc_ptr 10) p {-# LINE 353 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} RETURN (ty, size, res1, res2, offset)
type LPBITMAPFILEHEADER = Ptr BITMAPFILEHEADER
getBITMAPFILEHEADER :: LPBITMAPFILEHEADER -> IO BITMAPFILEHEADER getBITMAPFILEHEADER = peekBITMAPFILEHEADER
sizeofBITMAP :: Word32 sizeofBITMAP = (24) {-# LINE 362 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} sizeofBITMAPINFO :: Word32 sizeofBITMAPINFO = (44) {-# LINE 364 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} sizeofBITMAPINFOHEADER :: Word32 sizeofBITMAPINFOHEADER = (40) {-# LINE 366 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} sizeofBITMAPFILEHEADER :: Word32 sizeofBITMAPFILEHEADER = (14) {-# LINE 368 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-} sizeofLPBITMAPFILEHEADER :: Word32 sizeofLPBITMAPFILEHEADER = (14) {-# LINE 370 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-}
createBMPFile :: string -> HBITMAP -> HDC -> IO () createBMPFile name bm dc = withCString name $ \ c_name -> c_CreateBMPFile c_name bm dc foreign import ccall unsafe "dumpBMP.h CreateBMPFile" c_CreateBMPFile :: LPCSTR -> HBITMAP -> HDC -> IO ()
{-# CFILES cbits/dumpBMP.c #-}
cBM_INIT :: DWORD cBM_INIT = 4
{-# LINE 393 "libraries\Win32\.\Graphics\Win32\GDI\Bitmap.hsc" #-}
getDIBits :: HDC -> HBITMAP -> int -> int -> Maybe LPVOID -> LPBITMAPINFO -> ColorFormat -> IO int getDIBits dc bm start nlines mb_bits Info usage = failIfZero "GetDIBits" $ c_GetDIBits dc bm start nlines (maybePtr mb_bits) Info usage foreign import STDCALL unsafe "windows.h GetDIBits" c_GetDIBits :: HDC -> HBITMAP -> int -> int -> LPVOID -> LPBITMAPINFO -> ColorFormat -> IO int
setDIBits :: HDC -> HBITMAP -> int -> int -> LPVOID -> LPBITMAPINFO -> ColorFormat -> IO int setDIBits dc bm start nlines bits Info Use = failIfZero "SetDIBits" $ c_SetDIBits dc bm start nlines bits Info Use foreign import STDCALL unsafe "windows.h SetDIBits" c_SetDIBits :: HDC -> HBITMAP -> int -> int -> LPVOID -> LPBITMAPINFO -> ColorFormat -> IO int
createDIBitmap :: HDC -> LPBITMAPINFOHEADER -> DWORD -> LPVOID -> LPBITMAPINFO -> ColorFormat -> IO HBITMAP createDIBitmap dc hdr option init_val Info usage = failIfNull "CreateDIBitmap" $ c_CreateDIBitmap dc hdr option init_val Info usage foreign import STDCALL unsafe "windows.h CreateDIBitmap" c_CreateDIBitmap :: HDC -> LPBITMAPINFOHEADER -> DWORD -> LPVOID -> LPBITMAPINFO -> ColorFormat -> IO HBITMAP
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 21:50 |
Classe Brush GDI+
Define objetos usados para preencher o interior de formas gráficas, como retângulos, elipses, tortas, polígonos, e caminhos.
https://msdn.microsoft.com/pt-br/library/system.drawing.brush%28v=vs.110%29.aspx
https://msdn.microsoft.com/pt-br/library/system.drawing.solidbrush%28v=vs.110%29.aspx
Brush est une Classe hérite de GDIPObjet FIN
Procedure Constructeur(nPtr est un entier système = Null) Constructeur GDIPObjet(nPtr)
Procedure Destructeur()
Procedure Type()
nType est un entier GdipGetBrushType(Pointer, &nType)
RENVOYER nType
Procedure PRIVÉE Type(v <utile>)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un Brush dynamique = allouer un Brush GdipCloneBrush(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure VIRTUELLE Dispose()
GdipDeleteBrush(Pointer)
GDIPObjet.Dispose()
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 21:59 |
CachedBitmap
Imagem e Bitmap objetos armazenar imagens em um formato independente de dispositivo. A CachedBitmap objeto armazena uma imagem no formato do dispositivo de exibição atual. Render uma imagem armazenada num CachedBitmap objecto é rápido porque nenhum tempo de processamento é gasto converter a imagem para o formato requerido pelo dispositivo de exibição.
O exemplo a seguir cria um Bitmap objeto e um CachedBitmap objeto da Texture.jpg arquivo. O Bitmap e CachedBitmap cada um são tirados 30.000 vezes. Se você executar o código, você vai ver que os CachedBitmap imagens são desenhadas substancialmente mais rápido do que os Bitmap imagens.
Bitmap Bitmap (L "Texture.jpg"); width = UINT bitmap.GetWidth (); altura UINT = bitmap.GetHeight (); CachedBitmap CBitmap (& bitmap, e gráficos); int j, k; for (j = 0; j < 300; J + = 10) para (k = 0; k <1000; k ++) Graphics.drawImage (& bitmap, J, J / 2, largura, altura); for (j = 0; j <300; j + = 10) para (k = 0; k <1000; k ++) graphics.DrawCachedBitmap (& CBitmap, J, J 150 + / 2);
Nota Um CachedBitmap objecto corresponde ao formato do dispositivo de exibição no momento da CachedBitmap objecto foi construído. Se o usuário de seu programa altera as configurações de exibição, seu código deve construir uma nova CachedBitmap objeto. O DrawImage método irá falhar se você passar um CachedBitmap objeto que foi criado antes de uma mudança no formato de apresentação.
CachedBitmap est une Classe hérite de Bitmap FIN
Procedure Constructeur(bitmap est un Bitmap dynamique = Null, g est un Graphics = Null)
nPtr est un entier système
SI MesParamètres..NbReçus = 2 ALORS GdipCreateCachedBitmap(bitmap.Pointer, g.Pointer, &nPtr) FIN GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure VIRTUELLE Dispose()
GdipDeleteCachedBitmap(Pointer)
GDIPObjet.Dispose()
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 22:13 |
Color Classe
Color est une Classe PRIVÉ m_nAlpha est un entier sans signe sur 1 m_nRed est un entier sans signe sur 1 m_nGreen est un entier sans signe sur 1 m_nBlue est un entier sans signe sur 1
GLOBAL PRIVÉ m_tabARGB est un tableau d'entiers sans signe = [ 0xFFD4D0C8, 0xFF0054E3, 0xFFFFFFFF, 0xFF808080, 0xFFECE9D8, 0xFFACA899, 0xFF716F64, 0xFFF1EFE2, 0xFFFFFFFF, 0xFF000000, 0xFF004E98, 0xFFACA899, 0xFF316AC5, 0xFFFFFFFF, 0xFF000080, 0xFFD4D0C8, 0xFF7A96DF, 0xFFD8E4F8, 0xFFFFFFE1, 0xFF000000, 0xFFFFFFFF, 0xFF000000, 0xFFD4D0C8, 0xFFFFFFFF, 0xFF000000, 0xFF000000, 0x00FFFFFF, 0xFFF0F8FF, 0xFFFAEBD7, 0xFF00FFFF, 0xFF7FFFD4, 0xFFF0FFFF, 0xFFF5F5DC, 0xFFFFE4C4, 0xFF000000, 0xFFFFEBCD, 0xFF0000FF, 0xFF8A2BE2, 0xFFA52A2A, 0xFFDEB887, 0xFF5F9EA0, 0xFF7FFF00, 0xFFD2691E, 0xFFFF7F50, 0xFF6495ED, 0xFFFFF8DC, 0xFFDC143C, 0xFF00FFFF, 0xFF00008B, 0xFF008B8B, 0xFFB8860B, 0xFFA9A9A9, 0xFF006400, 0xFFBDB76B, 0xFF8B008B, 0xFF556B2F, 0xFFFF8C00, 0xFF9932CC, 0xFF8B0000, 0xFFE9967A, 0xFF8FBC8B, 0xFF483D8B, 0xFF2F4F4F, 0xFF00CED1, 0xFF9400D3, 0xFFFF1493, 0xFF00BFFF, 0xFF696969, 0xFF1E90FF, 0xFFB22222, 0xFFFFFAF0, 0xFF228B22, 0xFFFF00FF, 0xFFDCDCDC, 0xFFF8F8FF, 0xFFFFD700, 0xFFDAA520, 0xFF808080, 0xFF008000, 0xFFADFF2F, 0xFFF0FFF0, 0xFFFF69B4, 0xFFCD5C5C, 0xFF4B0082, 0xFFFFFFF0, 0xFFF0E68C, 0xFFE6E6FA, 0xFFFFF0F5, 0xFF7CFC00, 0xFFFFFACD, 0xFFADD8E6, 0xFFF08080, 0xFFE0FFFF, 0xFFFAFAD2, 0xFFD3D3D3, 0xFF90EE90, 0xFFFFB6C1, 0xFFFFA07A, 0xFF20B2AA, 0xFF87CEFA, 0xFF778899, 0xFFB0C4DE, 0xFFFFFFE0, 0xFF00FF00, 0xFF32CD32, 0xFFFAF0E6, 0xFFFF00FF, 0xFF800000, 0xFF66CDAA, 0xFF0000CD, 0xFFBA55D3, 0xFF9370DB, 0xFF3CB371, 0xFF7B68EE, 0xFF00FA9A, 0xFF48D1CC, 0xFFC71585, 0xFF191970, 0xFFF5FFFA, 0xFFFFE4E1, 0xFFFFE4B5, 0xFFFFDEAD, 0xFF000080, 0xFFFDF5E6, 0xFF808000, 0xFF6B8E23, 0xFFFFA500, 0xFFFF4500, 0xFFDA70D6, 0xFFEEE8AA, 0xFF98FB98, 0xFFAFEEEE, 0xFFDB7093, 0xFFFFEFD5, 0xFFFFDAB9, 0xFFCD853F, 0xFFFFC0CB, 0xFFDDA0DD, 0xFFB0E0E6, 0xFF800080, 0xFFFF0000, 0xFFBC8F8F, 0xFF4169E1, 0xFF8B4513, 0xFFFA8072, 0xFFF4A460, 0xFF2E8B57, 0xFFFFF5EE, 0xFFA0522D, 0xFFC0C0C0, 0xFF87CEEB, 0xFF6A5ACD, 0xFF708090, 0xFFFFFAFA, 0xFF00FF7F, 0xFF4682B4, 0xFFD2B48C, 0xFF008080, 0xFFD8BFD8, 0xFFFF6347, 0xFF40E0D0, 0xFFEE82EE, 0xFFF5DEB3, 0xFFFFFFFF, 0xFFF5F5F5, 0xFFFFFF00, 0xFF9ACD32 ]
GLOBAL PUBLIC ActiveBorder est un Color dynamique = allouer un Color(m_tabARGB[1]) ActiveCaption est un Color dynamique = allouer un Color(m_tabARGB[2]) ActiveCaptionText est un Color dynamique = allouer un Color(m_tabARGB[3]) AppWorkspace est un Color dynamique = allouer un Color(m_tabARGB[4]) Control est un Color dynamique = allouer un Color(m_tabARGB[5]) ControlDark est un Color dynamique = allouer un Color(m_tabARGB[6]) ControlDarkDark est un Color dynamique = allouer un Color(m_tabARGB[7]) ControlLight est un Color dynamique = allouer un Color(m_tabARGB[8]) ControlLightLight est un Color dynamique = allouer un Color(m_tabARGB[9]) ControlText est un Color dynamique = allouer un Color(m_tabARGB[10]) Desktop est un Color dynamique = allouer un Color(m_tabARGB[11]) GrayText est un Color dynamique = allouer un Color(m_tabARGB[12]) Highlight est un Color dynamique = allouer un Color(m_tabARGB[13]) HighlightText est un Color dynamique = allouer un Color(m_tabARGB[14]) HotTrack est un Color dynamique = allouer un Color(m_tabARGB[15]) InactiveBorder est un Color dynamique = allouer un Color(m_tabARGB[16]) InactiveCaption est un Color dynamique = allouer un Color(m_tabARGB[17]) InactiveCaptionText est un Color dynamique = allouer un Color(m_tabARGB[18]) Info est un Color dynamique = allouer un Color(m_tabARGB[19]) InfoText est un Color dynamique = allouer un Color(m_tabARGB[20]) Menu est un Color dynamique = allouer un Color(m_tabARGB[21]) MenuText est un Color dynamique = allouer un Color(m_tabARGB[22]) ScrollBar est un Color dynamique = allouer un Color(m_tabARGB[23]) Window est un Color dynamique = allouer un Color(m_tabARGB[24]) WindowFrame est un Color dynamique = allouer un Color(m_tabARGB[25]) WindowText est un Color dynamique = allouer un Color(m_tabARGB[26]) Transparent est un Color dynamique = allouer un Color(m_tabARGB[27]) AliceBlue est un Color dynamique = allouer un Color(m_tabARGB[28]) AntiqueWhite est un Color dynamique = allouer un Color(m_tabARGB[29]) Aqua est un Color dynamique = allouer un Color(m_tabARGB[30]) Aquamarine est un Color dynamique = allouer un Color(m_tabARGB[31]) Azure est un Color dynamique = allouer un Color(m_tabARGB[32]) Beige est un Color dynamique = allouer un Color(m_tabARGB[33]) Bisque est un Color dynamique = allouer un Color(m_tabARGB[34]) Black est un Color dynamique = allouer un Color(m_tabARGB[35]) BlanchedAlmond est un Color dynamique = allouer un Color(m_tabARGB[36]) Blue est un Color dynamique = allouer un Color(m_tabARGB[37]) BlueViolet est un Color dynamique = allouer un Color(m_tabARGB[38]) Brown est un Color dynamique = allouer un Color(m_tabARGB[39]) BurlyWood est un Color dynamique = allouer un Color(m_tabARGB[40]) CadetBlue est un Color dynamique = allouer un Color(m_tabARGB[41]) Chartreuse est un Color dynamique = allouer un Color(m_tabARGB[42]) Chocolate est un Color dynamique = allouer un Color(m_tabARGB[43]) Coral est un Color dynamique = allouer un Color(m_tabARGB[44]) CornflowerBlue est un Color dynamique = allouer un Color(m_tabARGB[45]) Cornsilk est un Color dynamique = allouer un Color(m_tabARGB[46]) Crimson est un Color dynamique = allouer un Color(m_tabARGB[47]) Cyan est un Color dynamique = allouer un Color(m_tabARGB[48]) DarkBlue est un Color dynamique = allouer un Color(m_tabARGB[49]) DarkCyan est un Color dynamique = allouer un Color(m_tabARGB[50]) DarkGoldenrod est un Color dynamique = allouer un Color(m_tabARGB[51]) DarkGray est un Color dynamique = allouer un Color(m_tabARGB[52]) DarkGreen est un Color dynamique = allouer un Color(m_tabARGB[53]) DarkKhaki est un Color dynamique = allouer un Color(m_tabARGB[54]) DarkMagenta est un Color dynamique = allouer un Color(m_tabARGB[55]) DarkOliveGreen est un Color dynamique = allouer un Color(m_tabARGB[56]) DarkOrange est un Color dynamique = allouer un Color(m_tabARGB[57]) DarkOrchid est un Color dynamique = allouer un Color(m_tabARGB[58]) DarkRed est un Color dynamique = allouer un Color(m_tabARGB[59]) DarkSalmon est un Color dynamique = allouer un Color(m_tabARGB[60]) DarkSeaGreen est un Color dynamique = allouer un Color(m_tabARGB[61]) DarkSlateBlue est un Color dynamique = allouer un Color(m_tabARGB[62]) DarkSlateGray est un Color dynamique = allouer un Color(m_tabARGB[63]) DarkTurquoise est un Color dynamique = allouer un Color(m_tabARGB[64]) DarkViolet est un Color dynamique = allouer un Color(m_tabARGB[65]) DeepPink est un Color dynamique = allouer un Color(m_tabARGB[66]) DeepSkyBlue est un Color dynamique = allouer un Color(m_tabARGB[67]) DimGray est un Color dynamique = allouer un Color(m_tabARGB[68]) DodgerBlue est un Color dynamique = allouer un Color(m_tabARGB[69]) Firebrick est un Color dynamique = allouer un Color(m_tabARGB[70]) FloralWhite est un Color dynamique = allouer un Color(m_tabARGB[71]) ForestGreen est un Color dynamique = allouer un Color(m_tabARGB[72]) Fuchsia est un Color dynamique = allouer un Color(m_tabARGB[73]) Gainsboro est un Color dynamique = allouer un Color(m_tabARGB[74]) GhostWhite est un Color dynamique = allouer un Color(m_tabARGB[75]) Gold est un Color dynamique = allouer un Color(m_tabARGB[76]) Goldenrod est un Color dynamique = allouer un Color(m_tabARGB[77]) Gray est un Color dynamique = allouer un Color(m_tabARGB[78]) Green est un Color dynamique = allouer un Color(m_tabARGB[79]) GreenYellow est un Color dynamique = allouer un Color(m_tabARGB[80]) Honeydew est un Color dynamique = allouer un Color(m_tabARGB[81]) HotPink est un Color dynamique = allouer un Color(m_tabARGB[82]) IndianRed est un Color dynamique = allouer un Color(m_tabARGB[83]) Indigo est un Color dynamique = allouer un Color(m_tabARGB[84]) Ivory est un Color dynamique = allouer un Color(m_tabARGB[85]) Khaki est un Color dynamique = allouer un Color(m_tabARGB[86]) Lavender est un Color dynamique = allouer un Color(m_tabARGB[87]) LavenderBlush est un Color dynamique = allouer un Color(m_tabARGB[88]) LawnGreen est un Color dynamique = allouer un Color(m_tabARGB[89]) LemonChiffon est un Color dynamique = allouer un Color(m_tabARGB[90]) LightBlue est un Color dynamique = allouer un Color(m_tabARGB[91]) LightCoral est un Color dynamique = allouer un Color(m_tabARGB[92]) LightCyan est un Color dynamique = allouer un Color(m_tabARGB[93]) LightGoldenrodYellow est un Color dynamique = allouer un Color(m_tabARGB[94]) LightGray est un Color dynamique = allouer un Color(m_tabARGB[95]) LightGreen est un Color dynamique = allouer un Color(m_tabARGB[96]) LightPink est un Color dynamique = allouer un Color(m_tabARGB[97]) LightSalmon est un Color dynamique = allouer un Color(m_tabARGB[98]) LightSeaGreen est un Color dynamique = allouer un Color(m_tabARGB[99]) LightSkyBlue est un Color dynamique = allouer un Color(m_tabARGB[100]) LightSlateGray est un Color dynamique = allouer un Color(m_tabARGB[101]) LightSteelBlue est un Color dynamique = allouer un Color(m_tabARGB[102]) LightYellow est un Color dynamique = allouer un Color(m_tabARGB[103]) Lime est un Color dynamique = allouer un Color(m_tabARGB[104]) LimeGreen est un Color dynamique = allouer un Color(m_tabARGB[105]) Linen est un Color dynamique = allouer un Color(m_tabARGB[106]) Magenta est un Color dynamique = allouer un Color(m_tabARGB[107]) Maroon est un Color dynamique = allouer un Color(m_tabARGB[108]) MediumAquamarine est un Color dynamique = allouer un Color(m_tabARGB[109]) MediumBlue est un Color dynamique = allouer un Color(m_tabARGB[110]) MediumOrchid est un Color dynamique = allouer un Color(m_tabARGB[111]) MediumPurple est un Color dynamique = allouer un Color(m_tabARGB[112]) MediumSeaGreen est un Color dynamique = allouer un Color(m_tabARGB[113]) MediumSlateBlue est un Color dynamique = allouer un Color(m_tabARGB[114]) MediumSpringGreen est un Color dynamique = allouer un Color(m_tabARGB[115]) MediumTurquoise est un Color dynamique = allouer un Color(m_tabARGB[116]) MediumVioletRed est un Color dynamique = allouer un Color(m_tabARGB[117]) MidnightBlue est un Color dynamique = allouer un Color(m_tabARGB[118]) MintCream est un Color dynamique = allouer un Color(m_tabARGB[119]) MistyRose est un Color dynamique = allouer un Color(m_tabARGB[120]) Moccasin est un Color dynamique = allouer un Color(m_tabARGB[121]) NavajoWhite est un Color dynamique = allouer un Color(m_tabARGB[122]) Navy est un Color dynamique = allouer un Color(m_tabARGB[123]) OldLace est un Color dynamique = allouer un Color(m_tabARGB[124]) Olive est un Color dynamique = allouer un Color(m_tabARGB[125]) OliveDrab est un Color dynamique = allouer un Color(m_tabARGB[126]) Orange est un Color dynamique = allouer un Color(m_tabARGB[127]) OrangeRed est un Color dynamique = allouer un Color(m_tabARGB[128]) Orchid est un Color dynamique = allouer un Color(m_tabARGB[129]) PaleGoldenrod est un Color dynamique = allouer un Color(m_tabARGB[130]) PaleGreen est un Color dynamique = allouer un Color(m_tabARGB[131]) PaleTurquoise est un Color dynamique = allouer un Color(m_tabARGB[132]) PaleVioletRed est un Color dynamique = allouer un Color(m_tabARGB[133]) PapayaWhip est un Color dynamique = allouer un Color(m_tabARGB[134]) PeachPuff est un Color dynamique = allouer un Color(m_tabARGB[135]) Peru est un Color dynamique = allouer un Color(m_tabARGB[136]) Pink est un Color dynamique = allouer un Color(m_tabARGB[137]) Plum est un Color dynamique = allouer un Color(m_tabARGB[138]) PowderBlue est un Color dynamique = allouer un Color(m_tabARGB[139]) Purple est un Color dynamique = allouer un Color(m_tabARGB[140]) Red est un Color dynamique = allouer un Color(m_tabARGB[141]) RosyBrown est un Color dynamique = allouer un Color(m_tabARGB[142]) RoyalBlue est un Color dynamique = allouer un Color(m_tabARGB[143]) SaddleBrown est un Color dynamique = allouer un Color(m_tabARGB[144]) Salmon est un Color dynamique = allouer un Color(m_tabARGB[145]) SandyBrown est un Color dynamique = allouer un Color(m_tabARGB[146]) SeaGreen est un Color dynamique = allouer un Color(m_tabARGB[147]) SeaShell est un Color dynamique = allouer un Color(m_tabARGB[148]) Sienna est un Color dynamique = allouer un Color(m_tabARGB[149]) Silver est un Color dynamique = allouer un Color(m_tabARGB[150]) SkyBlue est un Color dynamique = allouer un Color(m_tabARGB[151]) SlateBlue est un Color dynamique = allouer un Color(m_tabARGB[152]) SlateGray est un Color dynamique = allouer un Color(m_tabARGB[153]) Snow est un Color dynamique = allouer un Color(m_tabARGB[154]) SpringGreen est un Color dynamique = allouer un Color(m_tabARGB[155]) SteelBlue est un Color dynamique = allouer un Color(m_tabARGB[156]) Tan est un Color dynamique = allouer un Color(m_tabARGB[157]) Teal est un Color dynamique = allouer un Color(m_tabARGB[158]) Thistle est un Color dynamique = allouer un Color(m_tabARGB[159]) Tomato est un Color dynamique = allouer un Color(m_tabARGB[160]) Turquoise est un Color dynamique = allouer un Color(m_tabARGB[161]) Violet est un Color dynamique = allouer un Color(m_tabARGB[162]) Wheat est un Color dynamique = allouer un Color(m_tabARGB[163]) White est un Color dynamique = allouer un Color(m_tabARGB[164]) WhiteSmoke est un Color dynamique = allouer un Color(m_tabARGB[165]) Yellow est un Color dynamique = allouer un Color(m_tabARGB[166]) YellowGreen est un Color dynamique = allouer un Color(m_tabARGB[167])
FIN
Procedure Constructeur(*)
SI MesParamètres..NbReçus = 1 ALORS m_nAlpha = MesParamètres[1] bitDécaleDroite 24 m_nRed = RVBRouge(MesParamètres[1]) m_nGreen = RVBVert(MesParamètres[1]) m_nBlue = RVBBleu(MesParamètres[1]) SINON SI MesParamètres..NbReçus = 3 ALORS m_nAlpha = 255 m_nRed = MesParamètres[1] m_nGreen = MesParamètres[2] m_nBlue = MesParamètres[3] SINON SI MesParamètres..NbReçus = 4 ALORS m_nAlpha = MesParamètres[1] m_nRed = MesParamètres[2] m_nGreen = MesParamètres[3] m_nBlue = MesParamètres[4] FIN
Procedure Destructeur()
Procedure Alpha() RENVOYER m_nAlpha
Procedure Alpha(nValeur) m_nAlpha = nValeur
Procedure Blue() RENVOYER m_nBlue
Procedure Blue(nValeur) m_nBlue = nValeur
Procedure Green() RENVOYER m_nGreen
Procedure Green(nValeur) m_nGreen = nValeur
Procedure Red() RENVOYER m_nRed
Procedure Red(nValeur) m_nRed = nValeur
Procedure Value() RENVOYER RVB(m_nRed, m_nGreen, m_nBlue) + (m_nAlpha bitDécaleGauche 10)
Procedure Value(nValeur est un entier)
m_nAlpha = nValeur bitDécaleDroite 24 m_nRed = RVBRouge(nValeur) m_nGreen = RVBVert(nValeur) m_nBlue = RVBBleu(nValeur)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 22:29 |
CustomLineCap
Customizar Linha
https://msdn.microsoft.com/en-us/library/windows/desktop/ms533977%28v=vs.85%29.aspx
http://forum.powerbasic.com/forum/jose-s-corner/source-code-ab/51277-gdi-classes-customlinecap-methods-examples
CustomLineCap est une Classe hérite de GDIPObjet FIN
Procedure Constructeur(fillPath est un GraphicsPath dynamique = Null, strokePath est un GraphicsPath dynamique = Null, baseCap est un entier = LineCapFlat, baseInset est un réel sur 4 = 0)
nPtr est un entier système nPtrFill est un entier système = (fillPath = Null ? Null SINON fillPath.Pointer) nPtrStroke est un entier système = (strokePath = Null ? Null SINON strokePath.Pointer) GdipCreateCustomLineCap(nPtrFill, nPtrStroke, baseCap, baseInset, &nPtr) GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure BaseCap()
nCap est un entier GdipGetCustomLineCapBaseCap(Pointer, &nCap)
RENVOYER nCap
Procedure BaseCap(nValeur est un entier) GdipSetCustomLineCapBaseCap(Pointer, nValeur)
Procedure StrokeJoin()
nJoin est un entier GdipGetCustomLineCapStrokeJoin(Pointer, &nJoin)
RENVOYER nJoin
Procedure StrokeJoin(nValeur est un entier)
GdipSetCustomLineCapStrokeJoin(Pointer, nValeur)
Procedure BaseInset()
rInset est un réel sur 4 GdipGetCustomLineCapBaseInset(Pointer, &rInset)
RENVOYER rInset
Procedure BaseInset(rValeur est un réel sur 4)
GdipSetCustomLineCapBaseInset(Pointer, rValeur)
Procedure WidthScale()
rWidthScale est un réel sur 4 GdipGetCustomLineCapWidthScale(Pointer, &rWidthScale)
RENVOYER rWidthScale
Procedure WidthScale(rValeur est un réel sur 4)
GdipSetCustomLineCapWidthScale(Pointer, rValeur)
Procedure Type()
nType est un entier GdipGetCustomLineCapType(Pointer, &nType)
RENVOYER nType
Procedure PRIVÉE Type(v <utile>)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un CustomLineCap dynamique = allouer un CustomLineCap GdipCloneCustomLineCap(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure VIRTUELLE Dispose()
GdipDeleteCustomLineCap(Pointer)
GDIPObjet.Dispose()
Procedure GetStrokeCaps(startCap est un entier, endCap est un entier)
GdipGetCustomLineCapStrokeCaps(Pointer, &startCap, &endCap)
Procedure SetStrokeCaps(LOCAL startCap est un entier, LOCAL endCap est un entier)
GdipSetCustomLineCapStrokeCaps(Pointer, startCap, endCap)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 22:44 |
Effect
Effect est une Classe hérite de GDIPObjet FIN
Procedure Constructeur(Clsid est un GUID)
nPtr est un entier système GdipCreateEffect(&Clsid, &nPtr) GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure PRIVÉE Parameters()
Procedure Parameters(stValeur) GdipSetEffectParameters(Pointer, &stValeur, Dimension(stValeur))
Procedure VIRTUELLE PRIVÉE Clone()
Procedure VIRTUELLE Dispose()
GdipDeleteEffect(Pointer)
GDIPObjet.Dispose()
Procedure ApplyEffect(srcbitmap est un Bitmap dynamique, rect est un RECT, dstbitmap est un Bitmap dynamique)
nPtr est un entier système
GdipBitmapCreateApplyEffect(srcbitmap.Pointer, 1, Pointer, (rect = Null ? Null SINON rect), Null, &nPtr, Faux, Null, Null) SI dstbitmap = Null ALORS dstbitmap = allouer un Bitmap FIN dstbitmap.Pointer = nPtr
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 22:51 |
Font
Font est une Classe hérite de GDIPObjet FIN
Procedure PRIVÉE Constructeur() Constructeur GDIPObjet()
Procedure Destructeur()
Procedure Family()
nPtr est un entier système pclObjet est un FontFamily dynamique = allouer un FontFamily
GdipGetFamily(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure PRIVÉE Family(v <utile>)
Procedure Style()
nStyle est un entier GdipGetFontStyle(Pointer, &nStyle)
RENVOYER nStyle
Procedure Style(nValeur est un entier)
pclFont est un Font dynamique = CreateFont(Family, Size, nValeur, Unit) pclFont.Pointer <=> Pointer pclFont.Dispose()
Procedure Size()
nSize est un réel sur 4 GdipGetFontSize(Pointer, &nSize)
RENVOYER nSize
Procedure Size(rValeur est un réel sur 4)
pclFont est un Font dynamique = CreateFont(Family, rValeur, Style, Unit) pclFont.Pointer <=> Pointer pclFont.Dispose()
Procedure Unit() nUnit est un entier GdipGetFontUnit(Pointer, &nUnit)
RENVOYER nUnit
Procedure Unit(nValeur est un entier)
pclFont est un Font dynamique = CreateFont(Family, Size, Style, nValeur) pclFont.Pointer <=> Pointer pclFont.Dispose()
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un Font dynamique = allouer un Font
GdipCloneFont(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure VIRTUELLE Dispose()
GdipDeleteFont(Pointer)
GDIPObjet.Dispose()
Procedure GLOBALE FromHDC(hDC est un entier système) nPtr est un entier système pclObjet est un Font dynamique = allouer un Font
GdipCreateFontFromDC(hDC, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE CreateFont(family est un FontFamily dynamique, emSize est un réel sur 4, style est un entier = FontStyleRegular, unit est un entier = UnitPoint) nPtr est un entier système pclObjet est un Font dynamique = allouer un Font
GdipCreateFont(family.Pointer, emSize, style, unit, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE FromName(fname est une chaîne, emSize est un réel sur 4, style est un entier = FontStyleRegular, unit est un entier = UnitPoint)
pclFamily est un FontFamily dynamique = allouer un FontFamily(fname) RENVOYER CreateFont(pclFamily, emSize, style, unit)
Procedure GetHeight(g est un Graphics dynamique)
nHeight est un réel sur 4 GdipGetFontHeight(Pointer, g.Pointer, &nHeight) RENVOYER nHeight
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 23:14 |
FontCollection
FontCollection est une Classe hérite de GDIPObjet FIN
Procedure PROTÉGÉE Constructeur(nPtr est un entier système = Null) Constructeur GDIPObjet(nPtr)
Procedure Destructeur()
Procedure Families()
nFound est un entier nCount est un entier tabPtr est un tableau d'entier système tabFam est un tableau de FontFamily dynamique
SI PAS m_nNativeObject = Null ALORS
GdipGetFontCollectionFamilyCount(Pointer, &nFound) Dimension(tabPtr, nFound) GdipGetFontCollectionFamilyList(Pointer, nFound, &tabPtr, &nCount) Dimension(tabFam, nCount) POUR i = 1 _A_ nCount tabFam[i] = allouer un FontFamily tabFam[i].Pointer = tabPtr[i] FIN FIN RENVOYER tabFam
Procedure PRIVÉE Families(v <utile>)
Procedure VIRTUELLE PRIVÉE Clone() RENVOYER Null
Procedure VIRTUELLE Dispose()
GDIPObjet.Dispose()
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 23:25 |
FontFamily
FontFamily est une Classe hérite de GDIPObjet
FIN
CONSTANT GenericFontFamiliesMonospace = 2 GenericFontFamiliesSansSerif = 1 GenericFontFamiliesSerif = 0 FIN
Procedure Constructeur(name est une chaîne = "", fontCollection est un FontCollection dynamique = Null)
nPtr est un entier système u est une chaîne UNICODE = name GdipCreateFontFamilyFromName(&u, (fontCollection = Null ? Null SINON fontCollection.Pointer), &nPtr) GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure Name()
sName est une chaîne u est une chaîne UNICODE sur 31 GdipGetFamilyName(Pointer, &u, 0) sName = u RENVOYER sName
Procedure PRIVÉE Name(v <utile>)
Procedure GLOBALE PRIVÉE GetGenericFontFamily(family est un entier)
nPtr est un entier système pclObjet est un FontFamily dynamique = allouer un FontFamily
SELON family CAS GenericFontFamiliesSansSerif GdipGetGenericFontFamilySansSerif(&nPtr) CAS GenericFontFamiliesSerif GdipGetGenericFontFamilySerif(&nPtr) AUTRE CAS GdipGetGenericFontFamilyMonospace(&nPtr) FIN pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE GenericMonospace() RENVOYER GetGenericFontFamily(GenericFontFamiliesMonospace)
Procedure GLOBALE GenericSansSerif() RENVOYER GetGenericFontFamily(GenericFontFamiliesSansSerif)
Procedure GLOBALE GenericSerif() RENVOYER GetGenericFontFamily(GenericFontFamiliesSerif)
Procedure GetCellAscent(style est un entier)
nProp est un entier sur 2
GdipGetCellAscent(Pointer, style, &nProp) RENVOYER nProp
Procedure GetCellDescent(style est un entier)
nProp est un entier sur 2
GdipGetCellDescent(Pointer, style, &nProp) RENVOYER nProp
Procedure GetEmHeight(style est un entier)
nProp est un entier sur 2
GdipGetEmHeight(Pointer, style, &nProp) RENVOYER nProp
Procedure GetLineSpacing(style est un entier)
nProp est un entier sur 2
GdipGetLineSpacing(Pointer, style, &nProp) RENVOYER nProp
Procedure IsStyleAvailable(style est un entier)
nProp est un entier sur 2
GdipIsStyleAvailable(Pointer, style, &nProp) RENVOYER nProp
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un FontFamily dynamique = allouer un FontFamily GdipCloneFontFamily(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure VIRTUELLE Dispose()
GdipDeleteFontFamily(Pointer)
GDIPObjet.Dispose()
Procedure Equals(obj est un FontFamily dynamique)
SI obj = Null ALORS RENVOYER Faux RENVOYER (obj.Name = Name)
Procedure GLOBALE Families()
nPtr est un entier système
GdipNewInstalledFontCollection(&nPtr)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 17 mars 2016 - 23:43 |
GDIPObjet
GDIPObjet est une Classe
PROTÉGÉ m_nNativeObject est un entier système PRIVÉ m_bNull est un booléen
FIN
Procedure Constructeur(nObjectNatif est un entier système = Null)
m_nNativeObject = nObjectNatif m_bNull = (m_nNativeObject = 0)
Procedure Destructeur()
SI m_bNull = Faux ALORS Dispose() FIN
Procedure Pointer() RENVOYER m_nNativeObject
Procedure Pointer(nValeur est un entier système)
SI m_bNull = Faux ALORS Dispose() FIN
m_nNativeObject = nValeur m_bNull = (m_nNativeObject = 0)
Procedure VIRTUELLE Dispose()
m_bNull = Vrai m_nNativeObject = Null
Procedure VIRTUELLE Clone()
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 00:34 |
Graphics
Graphics est une Classe hérite de GDIPObjet PRIVÉ GLOBAL m_rDefDPIX est un réel sur 4 m_rDefDPIY est un réel sur 4
FIN
Procedure PRIVÉE Constructeur() Constructeur GDIPObjet()
Procedure Destructeur()
Procedure GLOBALE SystemDpiX()
SI m_rDefDPIX = 0 ALORS clBmp est un Bitmap(1, 1) clGfx est un Graphics = FromImage(clBmp) m_rDefDPIX = clGfx.DpiX m_rDefDPIY = clGfx.DpiY FIN
RENVOYER m_rDefDPIX
Procedure GLOBALE PRIVÉE SystemDpiX(v <utile>)
Procedure GLOBALE SystemDpiY()
SI m_rDefDPIY = 0 ALORS clBmp est un Bitmap(1, 1) clGfx est un Graphics = FromImage(clBmp) m_rDefDPIX = clGfx.DpiX m_rDefDPIY = clGfx.DpiY FIN
RENVOYER m_rDefDPIY
Procedure GLOBALE PRIVÉE SystemDpiY(v <utile>)
Procedure Clip()
nPtr est un entier système pclObjet est un Region dynamique = allouer un Region GdipGetClip(Pointer, &nPtr)
pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure Clip(pclValeur est un Region dynamique)
GdipSetClipRegion(Pointer, pclValeur.Pointer, CombineModeReplace)
Procedure ClipBounds()
stRect est un RECT GdipGetClipBoundsI(Pointer, &stRect)
RENVOYER stRect
Procedure PRIVÉE ClipBounds(v <utile>)
Procedure ClipBoundsF()
stRect est un RECTF
GdipGetClipBounds(Pointer, &stRect) RENVOYER stRect
Procedure PRIVÉE ClipBoundsF(v <utile>)
Procedure CompositingMode()
nMode est un entier GdipGetCompositingMode(Pointer, &nMode)
RENVOYER nMode
Procedure CompositingMode(nValeur est un entier)
GdipSetCompositingMode(Pointer, nValeur)
Procedure CompositingQuality()
nQual est un entier GdipGetCompositingQuality(Pointer, &nQual)
RENVOYER nQual
Procedure CompositingQuality(nValeur est un entier)
GdipSetCompositingQuality(Pointer, nValeur)
Procedure DpiX()
x est un réel sur 4 GdipGetDpiX(Pointer, &x)
RENVOYER x
Procedure PRIVÉE DpiX(v <utile>)
Procedure DpiY()
y est un réel sur 4 GdipGetDpiY(Pointer, &y)
RENVOYER y
Procedure PRIVÉE DpiY(v <utile>)
Procedure InterpolationMode()
nMode est un entier = InterpolationModeInvalid GdipGetInterpolationMode(Pointer, &nMode)
RENVOYER nMode
Procedure InterpolationMode(nValeur est un entier) GdipSetInterpolationMode(Pointer, nValeur)
Procedure IsClipEmpty()
bVal est un booléen GdipIsClipEmpty(Pointer, &bVal)
RENVOYER bVal
Procedure PRIVÉE IsClipEmpty(v <utile>)
Procedure IsVisibleClipEmpty()
bVal est un booléen GdipIsVisibleClipEmpty(Pointer, &bVal)
RENVOYER bVal
Procedure PRIVÉE IsVisibleClipEmpty(v <utile>)
Procedure PageScale()
rScale est un réel sur 4 GdipGetPageScale(Pointer, &rScale) RENVOYER rScale
Procedure PageScale(rValeur est un réel sur 4)
GdipSetPageScale(Pointer, rValeur)
Procedure PageUnit()
nUnit est un entier GdipGetPageUnit(Pointer, &nUnit)
RENVOYER nUnit
Procedure PageUnit(nValeur est un entier)
GdipSetPageUnit(Pointer, nValeur)
Procedure PixelOffsetMode()
nMode est un entier = PixelOffsetModeInvalid
GdipGetPixelOffsetMode(Pointer, &nMode) RENVOYER nMode
Procedure PixelOffsetMode(nValeur est un entier)
GdipSetPixelOffsetMode(Pointer, nValeur)
Procedure RenderingOrigin()
stPoint est un POINT GdipGetRenderingOrigin(Pointer, &stPoint.x, &stPoint.y)
RENVOYER stPoint
Procedure RenderingOrigin(stValeur est un POINT)
GdipSetRenderingOrigin(Pointer, stValeur.x, stValeur.y)
Procedure SmoothingMode()
nMode est un entier = SmoothingModeInvalid GdipGetSmoothingMode(Pointer, &nMode)
RENVOYER nMode
Procedure SmoothingMode(nValeur est un entier)
GdipSetSmoothingMode(Pointer, nValeur)
Procedure TextContrast()
nContrast est un entier GdipGetTextContrast(Pointer, &nContrast)
RENVOYER nContrast
Procedure TextContrast(nValeur est un entier)
GdipSetTextContrast(Pointer, nValeur)
Procedure TextRenderingHint()
nHint est un entier
GdipGetTextRenderingHint(Pointer, &nHint) RENVOYER nHint
Procedure TextRenderingHint(nValeur est un entier)
GdipSetTextRenderingHint(Pointer, nValeur)
Procedure Transform()
nPtr est un entier système pclObjet est un Matrix dynamique = allouer un Matrix GdipGetWorldTransform(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure Transform(pclValeur est un Matrix dynamique)
GdipSetWorldTransform(Pointer, pclValeur.Pointer)
Procedure VisibleClipBoundsF()
stRect est un RECTF GdipGetVisibleClipBounds(Pointer, &stRect)
RENVOYER stRect
Procedure PRIVÉE VisibleClipBoundsF(v <utile>)
Procedure VisibleClipBounds()
stRect est un RECT GdipGetVisibleClipBoundsI(Pointer, &stRect)
RENVOYER stRect
Procedure PRIVÉE VisibleClipBounds(v <utile>)
Procedure VIRTUELLE PRIVÉE Clone()
Procedure VIRTUELLE Dispose()
GdipDeleteGraphics(Pointer)
GDIPObjet.Dispose()
Procedure BeginContainer(dstRect = Null, srcRect = Null, unit est un entier = UnitWorld)
nState est un entier
SI MesParamètres..NbReçus = 0 ALORS GdipBeginContainer2(Pointer, &nState) SINON SI TypeVar(dstRect.X) = wlRéel_4 ALORS GdipBeginContainer(Pointer, &dstRect, &srcRect, unit, &nState) SINON GdipBeginContainerI(Pointer, &dstRect, &srcRect, unit, &nState) FIN FIN
RENVOYER nState
Procedure Clear(Color est un Color dynamique)
GdipGraphicsClear(Pointer, (Color.Value))
Procedure DrawArc(pen est un Pen dynamique, rect, startAngle est un réel sur 4, sweepAngle est un réel sur 4)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipDrawArc(Pointer, pen.Pointer, rect.X, rect.Y, rect.Width, rect.Height, startAngle, sweepAngle) SINON GdipDrawArcI(Pointer, pen.Pointer, rect.X, rect.Y, rect.Width, rect.Height, startAngle, sweepAngle) FIN
Procedure DrawBezier(pen est un Pen dynamique, pt1, pt2, pt3, pt4)
SI TypeVar(pt1.X) = wlRéel_4 ALORS GdipDrawBezier(Pointer, pen.Pointer, pt1.X, pt1.Y, pt2.X, pt2.Y, pt3.X, pt3.Y, pt4.X, pt4.Y) SINON GdipDrawBezierI(Pointer, pen.Pointer, pt1.X, pt1.Y, pt2.X, pt2.Y, pt3.X, pt3.Y, pt4.X, pt4.Y) FIN
Procedure DrawBeziers(pen est un Pen dynamique, points)
SI TypeVar(points[1].X) = wlRéel_4 ALORS GdipDrawBeziers(Pointer, pen.Pointer, &points, TableauOccurrence(points)) SINON GdipDrawBeziersI(Pointer, pen.Pointer, &points, TableauOccurrence(points)) FIN
Procedure DrawClosedCurve(pen est un Pen dynamique, points, tension est un réel sur 4 = 0)
SI TypeVar(points[1].X) = wlRéel_4 ALORS SI MesParamètres[3]..Défaut ALORS GdipDrawClosedCurve(Pointer, pen.Pointer, &points, TableauOccurrence(points)) SINON GdipDrawClosedCurve2(Pointer, pen.Pointer, &points, TableauOccurrence(points), tension) FIN SINON SI MesParamètres[3]..Défaut ALORS GdipDrawClosedCurveI(Pointer, pen.Pointer, &points, TableauOccurrence(points)) SINON GdipDrawClosedCurve2I(Pointer, pen.Pointer, &points, TableauOccurrence(points), tension) FIN FIN
Procedure DrawCurve(pen est un Pen dynamique, points, tension est un réel sur 4 = 0, offset est un entier = 0, numberOfSegments est un entier = 0)
SI TypeVar(points[1].X) = wlRéel_4 ALORS SI MesParamètres[3]..Défaut _ET_ MesParamètres[4]..Défaut _ET_ MesParamètres[5]..Défaut ALORS GdipDrawCurve(Pointer, pen.Pointer, &points, TableauOccurrence(points)) SINON SI MesParamètres[4]..Défaut _ET_ MesParamètres[5]..Défaut ALORS GdipDrawCurve2(Pointer, pen.Pointer, &points, TableauOccurrence(points), tension) SINON GdipDrawCurve3(Pointer, pen.Pointer, &points, TableauOccurrence(points), offset, numberOfSegments, tension) FIN SINON SI MesParamètres[3]..Défaut _ET_ MesParamètres[4]..Défaut _ET_ MesParamètres[5]..Défaut ALORS GdipDrawCurveI(Pointer, pen.Pointer, &points, TableauOccurrence(points)) SINON SI MesParamètres[4]..Défaut _ET_ MesParamètres[5]..Défaut ALORS GdipDrawCurve2I(Pointer, pen.Pointer, &points, TableauOccurrence(points), tension) SINON GdipDrawCurve3I(Pointer, pen.Pointer, &points, TableauOccurrence(points), offset, numberOfSegments, tension) FIN FIN
Procedure DrawEllipse(pen est un Pen dynamique, rect)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipDrawEllipse(Pointer, pen.Pointer, rect.X, rect.Y, rect.Width, rect.Height) SINON GdipDrawEllipseI(Pointer, pen.Pointer, rect.X, rect.Y, rect.Width, rect.Height) FIN
Procedure DrawLine(pen est un Pen dynamique, pt1, pt2)
SI TypeVar(pt1.X) = wlRéel_4 ALORS GdipDrawLine(Pointer, pen.Pointer, pt1.X, pt1.Y, pt2.X, pt2.Y) SINON GdipDrawLineI(Pointer, pen.Pointer, pt1.X, pt1.Y, pt2.X, pt2.Y) FIN
Procedure DrawLines(pen est un Pen dynamique, points)
SI TypeVar(points[1].X) = wlRéel_4 ALORS GdipDrawLines(Pointer, pen.Pointer, &points, TableauOccurrence(points)) SINON GdipDrawLinesI(Pointer, pen.Pointer, &points, TableauOccurrence(points)) FIN
Procedure DrawPath(pen est un Pen dynamique, path est un GraphicsPath dynamique)
GdipDrawPath(Pointer, pen.Pointer, path.Pointer)
Procedure DrawPie(pen est un Pen dynamique, rect, start_angle est un réel sur 4, sweep_angle est un réel sur 4)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipDrawPie(Pointer, pen.Pointer, rect.X, rect.Y, rect.Width, rect.Height, start_angle, sweep_angle) SINON GdipDrawPieI(Pointer, pen.Pointer, rect.X, rect.Y, rect.Width, rect.Height, start_angle, sweep_angle) FIN
Procedure DrawPolygon(pen est un Pen dynamique, points)
SI TypeVar(points[1].X) = wlRéel_4 ALORS GdipDrawPolygon(Pointer, pen.Pointer, &points, TableauOccurrence(points)) SINON GdipDrawPolygonI(Pointer, pen.Pointer, &points, TableauOccurrence(points)) FIN
Procedure DrawRectangle(pen est un Pen dynamique, rect)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipDrawRectangle(Pointer, pen.Pointer, rect.X, rect.Y, rect.Width, rect.Height) SINON GdipDrawRectangleI(Pointer, pen.Pointer, rect.X, rect.Y, rect.Width, rect.Height) FIN
Procedure DrawRectangles(pen est un Pen dynamique, rects)
SI TypeVar(rects[1].X) = wlRéel_4 ALORS GdipDrawRectangles(Pointer, pen.Pointer, &rects, TableauOccurrence(rects)) SINON GdipDrawRectanglesI(Pointer, pen.Pointer, &rects, TableauOccurrence(rects)) FIN
Procedure DrawString(s est une chaîne, font est un Font dynamique, brush est un Brush dynamique, layout est un RECTF, format est un StringFormat dynamique = Null)
u est une chaîne UNICODE = s
GdipDrawString(Pointer, &u, Taille(u), font.Pointer, &layout, (format = Null ? Null SINON format.Pointer), brush.Pointer)
Procedure EndContainer(nState est un entier)
GdipEndContainer(Pointer, nState)
Procedure ClipRect(rect, combineMode est un entier = CombineModeExclude)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipSetClipRect(Pointer, rect.x, rect.y, rect.Width, rect.Height, combineMode) SINON GdipSetClipRectI(Pointer, rect.x, rect.y, rect.Width, rect.Height, combineMode) FIN
Procedure ClipRegion(region est un Region dynamique, combineMode est un entier = CombineModeExclude)
GdipSetClipRegion(Pointer, region.Pointer, combineMode)
Procedure FillClosedCurve(brush est un Brush dynamique, points, fillMode est un entier = FillModeAlternate, tension est un réel sur 4 = 0.5)
SI TypeVar(points[1].X) = wlRéel_4 ALORS SI MesParamètres[3]..Défaut ALORS GdipFillClosedCurve(Pointer, brush.Pointer, &points, TableauOccurrence(points)) SINON GdipFillClosedCurve2(Pointer, brush.Pointer, &points, TableauOccurrence(points), tension, fillMode) FIN SINON SI MesParamètres[3]..Défaut ALORS GdipFillClosedCurveI(Pointer, brush.Pointer, &points, TableauOccurrence(points)) SINON GdipFillClosedCurve2I(Pointer, brush.Pointer, &points, TableauOccurrence(points), tension, fillMode) FIN FIN
Procedure FillEllipse(brush est un Brush dynamique, rect)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipFillEllipse(Pointer, brush.Pointer, rect.X, rect.Y, rect.Width, rect.Height) SINON GdipFillEllipseI(Pointer, brush.Pointer, rect.X, rect.Y, rect.Width, rect.Height) FIN
Procedure FillPath(brush est un Brush dynamique, path est un GraphicsPath dynamique)
GdipFillPath(Pointer, brush.Pointer, path.Pointer)
Procedure FillPie(brush est un Brush dynamique, rect, start_angle est un réel sur 4, sweep_angle est un réel sur 4)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipFillPie(Pointer, brush.Pointer, rect.X, rect.Y, rect.Width, rect.Height, start_angle, sweep_angle) SINON GdipFillPieI(Pointer, brush.Pointer, rect.X, rect.Y, rect.Width, rect.Height, start_angle, sweep_angle) FIN
Procedure FillPolygon(brush est un Brush dynamique, points, fillMode est un entier = FillModeAlternate)
SI TypeVar(points[1].X) = wlRéel_4 ALORS SI MesParamètres..NbReçus = 2 ALORS GdipFillPolygon2(Pointer, brush.Pointer, &points, TableauOccurrence(points)) SINON GdipFillPolygon(Pointer, brush.Pointer, &points, TableauOccurrence(points), fillMode) FIN SINON SI MesParamètres..NbReçus = 2 ALORS GdipFillPolygon2I(Pointer, brush.Pointer, &points, TableauOccurrence(points)) SINON GdipFillPolygonI(Pointer, brush.Pointer, &points, TableauOccurrence(points), fillMode) FIN FIN
Procedure FillRectangle(brush est un Brush dynamique, rect)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipFillRectangle(Pointer, brush.Pointer, rect.X, rect.Y, rect.Width, rect.Height) SINON GdipFillRectangleI(Pointer, brush.Pointer, rect.X, rect.Y, rect.Width, rect.Height) FIN
Procedure FillRectangles(brush est un Brush dynamique, rects)
SI TypeVar(rects[1].X) = wlRéel_4 ALORS GdipFillRectangles(Pointer, brush.Pointer, &rects, TableauOccurrence(rects)) SINON GdipFillRectanglesI(Pointer, brush.Pointer, &rects, TableauOccurrence(rects)) FIN
Procedure FillRegion(brush est un Brush dynamique, region est un Region dynamique)
GdipFillRegion(Pointer, brush.Pointer, region.Pointer)
Procedure Flush(intention est un entier = FlushIntentionFlush)
GdipFlush(Pointer, intention)
Procedure GLOBALE FromHdc(hdc est un entier système, hdevice est un entier système = Null)
nPtr est un entier système pclObjet est un Graphics dynamique = allouer un Graphics SI hdevice <> Null ALORS GdipCreateFromHDC2(hdc, hdevice, &nPtr) SINON GdipCreateFromHDC(hdc, &nPtr) FIN pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE FromHwnd(hwnd est un entier système)
nPtr est un entier système pclObjet est un Graphics dynamique = allouer un Graphics GdipCreateFromHWND(hwnd, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE FromImage(Image est un Image dynamique)
nPtr est un entier système pclObjet est un Graphics dynamique = allouer un Graphics GdipGetImageGraphicsContext(Image.Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE FromHwndICM(hwnd est un entier système)
nPtr est un entier système pclObjet est un Graphics dynamique = allouer un Graphics GdipCreateFromHWNDICM(hwnd, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GetHdc()
nDC est un entier système GdipGetDC(Pointer, &nDC) RENVOYER nDC
Procedure GetNearestColor(Color est un Color dynamique)
nArgb est un entier = Color.Value pclColor est un Color dynamique = allouer un Color GdipGetNearestColor(Pointer, &nArgb) pclColor.Value = nArgb RENVOYER pclColor
Procedure IntersectClip(region est un Region dynamique, combineMode = CombineModeIntersect)
GdipSetClipRegion(Pointer, region.Pointer, combineMode)
Procedure IntersectRect(rect, combineMode = CombineModeIntersect)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipSetClipRect(Pointer, rect.X, rect.Y, rect.Width, rect.Height, combineMode) SINON GdipSetClipRectI(Pointer, rect.X, rect.Y, rect.Width, rect.Height, combineMode) FIN
Procedure IsVisiblePoint(point)
bVal est un booléen
SI TypeVar(point.X) = wlRéel_4 ALORS GdipIsVisiblePoint(Pointer, point.X, point.Y, &bVal) SINON GdipIsVisiblePointI(Pointer, point.X, point.Y, &bVal) FIN RENVOYER bVal
Procedure IsVisibleRect(rect)
bVal est un booléen
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipIsVisibleRect(Pointer, rect.X, rect.Y, rect.Width, rect.Height, &bVal) SINON GdipIsVisibleRectI(Pointer, rect.X, rect.Y, rect.Width, rect.Height, &bVal) FIN RENVOYER bVal
Procedure MeasureCharacterRanges(text est une chaîne, font est un Font dynamique, layout est un RECTF, format est un StringFormat dynamique)
u est une chaîne UNICODE = text tabRgn est un tableau de Region dynamique tabPtr est un tableau d'entiers système nCount est un entier nCount = format.GetMeasurableCharacterRangeCount() Dimension(tabPtr, nCount) Dimension(tabRgn, nCount) GdipMeasureCharacterRanges(Pointer, &u, Taille(u), font.Pointer, &layout, format.Pointer, nCount, &tabPtr) POUR i = 1 _A_ nCount tabRgn[i] = allouer un Region tabRgn[i].Pointer = tabPtr[i] FIN RENVOYER tabRgn
Procedure MeasureString(text est une chaîne, font est un Font dynamique, layout est un RECTF = [0, 0], format est un StringFormat dynamique = Null)
u est une chaîne UNICODE = text box est un RECTF GdipMeasureString(Pointer, &u, Taille(u), font.Pointer, &layout, (format = Null ? Null SINON format.Pointer), &box, Null, Null)
RENVOYER box
Procedure MultiplyTransform(matrix est un Matrix dynamique, order est un entier = MatrixOrderPrepend)
GdipMultiplyWorldTransform(Pointer, matrix.Pointer, order)
Procedure ResetTransform()
GdipResetWorldTransform(Pointer)
Procedure RotateTransform(angle est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipRotateWorldTransform(Pointer, angle, order)
Procedure ScaleTransform(sx est un réel sur 4, sy est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipScaleWorldTransform(Pointer, sx, sy, order)
Procedure TranslateTransform(dx est un réel sur 4, dy est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipTranslateWorldTransform(Pointer, dx, dy, order)
Procedure ReleaseHdc(hdc est un entier système)
GdipReleaseDC(Pointer, (hdc))
Procedure ResetClip()
GdipResetClip(Pointer)
Procedure Restore(nState est un entier)
GdipRestoreGraphics(Pointer, nState)
Procedure Save()
nState est un entier GdipSaveGraphics(Pointer, &nState) RENVOYER nState
Procedure SetClip(clip, combineMode est un entier = CombineModeReplace)
pclObj est un GDIPObjet dynamique
SI TypeVar(clip) = wlInstance ALORS SELON clip..Classe CAS "Graphics" pclObj <- clip GdipSetClipGraphics(Pointer, pclObj.Pointer, combineMode) CAS "GraphicsPath"
pclObj <- clip GdipSetClipPath(Pointer, pclObj.Pointer, combineMode)
CAS "Region"
pclObj <- clip GdipSetClipRegion(Pointer, pclObj.Pointer, combineMode) FIN
SINON SI TypeVar(clip) = wlStructure ALORS SI TypeVar(clip.X) = wlRéel_4 ALORS GdipSetClipRect(Pointer, clip.X, clip.Y, clip.Width, clip.Height, combineMode) SINON GdipSetClipRectI(Pointer, clip.X, clip.Y, clip.Width, clip.Height, combineMode) FIN SINON GdipSetClipHrgn(Pointer, (clip), combineMode) FIN
Procedure TransformPoints(destSpace est un entier, srcSpace est un entier, pts)
SI TableauOccurrence(pts) > 0 ALORS SI TypeVar(pts[1].X) = wlRéel_4 ALORS GdipTransformPoints(Pointer, destSpace, srcSpace, &pts, TableauOccurrence(pts)) SINON GdipTransformPointsI(Pointer, destSpace, srcSpace, &pts, TableauOccurrence(pts)) FIN FIN
Procedure TranslateClip(dx, dy)
SI TypeVar(dx) = wlRéel_4 ALORS GdipTranslateClip(Pointer, dx, dy) SINON GdipTranslateClipI(Pointer, dx, dy) FIN
Procedure DrawImage(Image est un Image dynamique, x, y, width = -1, height = -1, unit est un entier = UnitPixel, xdst = 0, ydst = 0, widthdst = -1, heightdst = -1, imgAtt est un ImageAttributes dynamique = Null)
SI MesParamètres..NbReçus = 3 ALORS SI TypeVar(x) = wlRéel_4 ALORS GdipDrawImage(Pointer, Image.Pointer, x, y) SINON GdipDrawImageI(Pointer, Image.Pointer, x, y) FIN SINON SI MesParamètres..NbReçus <= 6 ALORS SI TypeVar(width) = wlRéel_4 ALORS GdipDrawImageRect(Pointer, Image.Pointer, x, y, width, height) SINON GdipDrawImageRectI(Pointer, Image.Pointer, x, y, width, height) FIN SINON SI MesParamètres..NbReçus = 8 ALORS SI TypeVar(width) = wlRéel_4 ALORS GdipDrawImagePointRectI(Pointer, Image.Pointer, x, y, xdst, ydst, width, height, unit) SINON GdipDrawImagePointRectI(Pointer, Image.Pointer, x, y, xdst, ydst, width, height, unit) FIN SINON SI TypeVar(width) = wlRéel_4 ALORS GdipDrawImageRectRect(Pointer, Image.Pointer, x, y, width, height, xdst, ydst, widthdst, heightdst, unit, (imgAtt = Null ? Null SINON imgAtt.Pointer), Null, Null) SINON GdipDrawImageRectRectI(Pointer, Image.Pointer, x, y, width, height, xdst, ydst, widthdst, heightdst, unit, (imgAtt = Null ? Null SINON imgAtt.Pointer), Null, Null) FIN FIN
Procedure DrawImageFX(Image est un Image dynamique, sourceRect est un RECTF, xForm est un Matrix dynamique, effect est un Effect dynamique, imgAtt est un ImageAttributes dynamique = Null, unit est un entier = UnitPixel)
GdipDrawImageFX(Pointer, Image.Pointer, &sourceRect, xForm.Pointer, effect.Pointer, (imgAtt = Null ? Null SINON imgAtt.Pointer), unit)
Procedure DrawCachedBitmap(Image est un CachedBitmap dynamique, x, y)
GdipDrawCachedBitmap(Pointer, Image.Pointer, x, y)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 02:29 |
GraphicsPath
GraphicsPath est une Classe hérite de GDIPObjet
PRIVÉ m_nType est un entier
FIN
Procedure Constructeur(points = Null, types = Null, fillMode est un entier = FillModeAlternate)
nPtr est un entier système nDimPoints est un entier = TableauOccurrence(points) nDimTypes est un entier = TableauOccurrence(types) nPtrPoints est un entier système = (MesParamètres[1]..Défaut _OU_ nDimPoints = 0 ? Null SINON &points) nPtrTypes est un entier système = (MesParamètres[2]..Défaut _OU_ nDimTypes = 0 ? Null SINON &types) dbgAssertion(nDimPoints = nDimTypes, "Le nombre de points n'est pas identique au nombre de types") SI nPtrPoints = Null _ET_ nPtrTypes = Null ALORS GdipCreatePath(fillMode, &nPtr) SINON SI TypeVar(points[1].X) = wlRéel_4 ALORS m_nType = wlRéel_4 GdipCreatePath2(nPtrPoints, nPtrTypes, nDimPoints, fillMode, &nPtr) SINON m_nType = wlEntier GdipCreatePath2I(nPtrPoints, nPtrTypes, nDimPoints, fillMode, &nPtr) FIN FIN GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure FillMode()
nFill est un entier GdipGetPathFillMode(Pointer, &nFill) RENVOYER nFill
Procedure FillMode(nValeur est un entier)
GdipSetPathFillMode(Pointer, nValeur)
Procedure PathTypes()
tabTypes est un tableau d'entiers sans signe sur 1 nCount est un entier GdipGetPointCount(Pointer, &nCount) tabTypes = allouer un tableau de (nCount) entiers sans signe sur 1 GdipGetPathTypes(Pointer, &tabTypes, nCount)
RENVOYER tabTypes
Procedure PRIVÉE PathTypes(v <utile>)
Procedure PointCount()
nCount est un entier GdipGetPointCount(Pointer, &nCount) RENVOYER nCount
Procedure PRIVÉE PointCount(v <utile>)
Procedure PathPoints()
tabPoints est un tableau de POINT tabPointsF est un tableau de POINTF nCount est un entier GdipGetPointCount(Pointer, &nCount) SI m_nType = wlRéel_4 ALORS tabPointsF = allouer un tableau de (nCount) POINTF GdipGetPathPoints(Pointer, &tabPointsF, nCount) RENVOYER tabPointsF SINON tabPoints = allouer un tableau de (nCount) POINT GdipGetPathPointsI(Pointer, &tabPoints, nCount) RENVOYER tabPoints FIN
Procedure PRIVÉE PathPoints(v <utile>)
Procedure PathData()
stData est un PathData nCount est un entier GdipGetPointCount(Pointer, &nCount) stData.Count = nCount stData.Points = allouer un tableau de (nCount) POINTF stData.Types = allouer un tableau de (nCount) entiers sans signe sur 1 GdipGetPathPoints(Pointer, &stData.Points, nCount) GdipGetPathPoints(Pointer, &stData.Types, nCount) RENVOYER stData
Procedure PRIVÉE PathData(v <utile>)
Procedure LastPoint()
stPoint est un POINTF GdipGetPathLastPoint(Pointer, &stPoint)
RENVOYER stPoint
Procedure PRIVÉE LastPoint(v <utile>)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un GraphicsPath dynamique = allouer un GraphicsPath GdipClonePath(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure VIRTUELLE Dispose()
GdipDeletePath(Pointer)
GDIPObjet.Dispose()
Procedure AddArc(rect, start_angle est un réel sur 4, sweep_angle est un réel sur 4)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipAddPathArc(Pointer, rect.X, rect.Y, rect.Width, rect.Height, start_angle, sweep_angle) SINON GdipAddPathArcI(Pointer, rect.X, rect.Y, rect.Width, rect.Height, start_angle, sweep_angle) FIN
Procedure AddBezier(pt1, pt2, pt3, pt4)
SI TypeVar(pt1.X) = wlRéel_4 ALORS GdipAddPathBezier(Pointer, pt1.X, pt1.Y, pt2.X, pt2.Y, pt3.X, pt3.Y, pt4.X, pt4.Y) SINON GdipAddPathBezierI(Pointer, pt1.X, pt1.Y, pt2.X, pt2.Y, pt3.X, pt3.Y, pt4.X, pt4.Y) FIN
Procedure AddBeziers(points)
SI TypeVar(points[1].X) = wlRéel_4 ALORS GdipAddPathBeziers(Pointer, &points, TableauOccurrence(points)) SINON GdipAddPathBeziersI(Pointer, &points, TableauOccurrence(points)) FIN
Procedure AddEllipse(rect)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipAddPathEllipse(Pointer, rect.X, rect.Y, rect.Width, rect.Height) SINON GdipAddPathEllipseI(Pointer, rect.X, rect.Y, rect.Width, rect.Height) FIN
Procedure AddLine(pt1, pt2)
SI TypeVar(pt1.X) = wlRéel_4 ALORS GdipAddPathLine(Pointer, pt1.X, pt1.Y, pt2.X, pt2.Y) SINON GdipAddPathLineI(Pointer, pt1.X, pt1.Y, pt2.X, pt2.Y) FIN
Procedure AddLines(points)
SI TypeVar(points[1].X) = wlRéel_4 ALORS GdipAddPathLine2(Pointer, &points, TableauOccurrence(points)) SINON GdipAddPathLine2I(Pointer, &points, TableauOccurrence(points)) FIN
Procedure AddPie(rect, start_angle est un réel sur 4, sweep_angle est un réel sur 4)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipAddPathPie(Pointer, rect.X, rect.Y, rect.Width, rect.Height, start_angle, sweep_angle) SINON GdipAddPathPieI(Pointer, rect.X, rect.Y, rect.Width, rect.Height, start_angle, sweep_angle) FIN
Procedure AddPolygon(points)
SI TypeVar(points[1].X) = wlRéel_4 ALORS GdipAddPathPolygon(Pointer, &points, TableauOccurrence(points)) SINON GdipAddPathPolygonI(Pointer, &points, TableauOccurrence(points)) FIN
Procedure AddRectangle(rect)
SI TypeVar(rect.X) = wlRéel_4 ALORS GdipAddPathRectangle(Pointer, rect.X, rect.Y, rect.Width, rect.Height) SINON GdipAddPathRectangleI(Pointer, rect.X, rect.Y, rect.Width, rect.Height) FIN
Procedure AddRectangles(rects)
SI TypeVar(rects[1].X) = wlRéel_4 ALORS GdipAddPathRectangles(Pointer, &rects, TableauOccurrence(rects)) SINON GdipAddPathRectanglesI(Pointer, &rects, TableauOccurrence(rects)) FIN
Procedure AddPath(addingPath est un GraphicsPath dynamique, connect est un booléen)
GdipAddPathPath(Pointer, addingPath.Pointer, connect)
Procedure AddClosedCurve(points, tension est un réel sur 4 = 0)
SI TypeVar(points[1].X) = wlRéel_4 ALORS SI MesParamètres[2]..Défaut ALORS GdipAddPathClosedCurve(Pointer, &points, TableauOccurrence(points)) SINON GdipAddPathClosedCurve2(Pointer, &points, TableauOccurrence(points), tension) FIN SINON SI MesParamètres[2]..Défaut ALORS GdipAddPathClosedCurveI(Pointer, &points, TableauOccurrence(points)) SINON GdipAddPathClosedCurve2I(Pointer, &points, TableauOccurrence(points), tension) FIN FIN
Procedure AddCurve(points, tension est un réel sur 4 = 0, offset est un entier = 0, numberOfSegments est un entier = 0)
SI TypeVar(points[1].X) = wlRéel_4 ALORS SI MesParamètres[2]..Défaut _ET_ MesParamètres[3]..Défaut _ET_ MesParamètres[4]..Défaut ALORS GdipAddPathCurve(Pointer, &points, TableauOccurrence(points)) SINON SI MesParamètres[3]..Défaut _ET_ MesParamètres[4]..Défaut ALORS GdipAddPathCurve2(Pointer, &points, TableauOccurrence(points), tension) SINON GdipAddPathCurve3(Pointer, &points, TableauOccurrence(points), offset, numberOfSegments, tension) FIN SINON SI MesParamètres[2]..Défaut _ET_ MesParamètres[3]..Défaut _ET_ MesParamètres[4]..Défaut ALORS GdipAddPathCurveI(Pointer, &points, TableauOccurrence(points)) SINON SI MesParamètres[3]..Défaut _ET_ MesParamètres[4]..Défaut ALORS GdipAddPathCurve2I(Pointer, &points, TableauOccurrence(points), tension) SINON GdipAddPathCurve3I(Pointer, &points, TableauOccurrence(points), offset, numberOfSegments, tension) FIN FIN
Procedure Reset()
GdipResetPath(Pointer)
Procedure Reverse()
GdipReversePath(Pointer)
Procedure Transform(matrix est un Matrix dynamique)
GdipTransformPath(Pointer, matrix.Pointer)
Procedure AddString(s est une chaîne, family est un FontFamily dynamique, style est un entier, emSize est un réel sur 4, layout, format est un StringFormat dynamique)
u est une chaîne UNICODE = s
SI TypeVar(layout.X) = wlRéel_4 ALORS GdipAddPathString(Pointer, u, Taille(u), family.Pointer, style, emSize, &layout, format.Pointer) SINON GdipAddPathStringI(Pointer, u, Taille(u), family.Pointer, style, emSize, &layout, format.Pointer) FIN
Procedure ClearMarkers()
GdipClearPathMarkers(Pointer)
Procedure CloseAllFigures()
GdipClosePathFigures(Pointer)
Procedure CloseFigure()
GdipClosePathFigure(Pointer)
Procedure Flatten(matrix est un Matrix dynamique = Null, flatness est un réel = FlatnessDefault)
GdipFlattenPath(Pointer, (matrix = Null ? Null SINON matrix.Pointer), flatness)
Procedure GetBounds(matrix est un Matrix dynamique = Null, pen est un Pen dynamique = Null)
stRect est un RECTF GdipGetPathWorldBounds(Pointer, &stRect, (matrix = Null ? Null SINON matrix.Pointer), (pen = Null ? Null SINON pen.Pointer)) RENVOYER stRect
Procedure IsOutlineVisible(point, pen est un Pen dynamique, graphics est un Graphics dynamique = Null)
bResult est un booléen
SI TypeVar(point.X) = wlRéel_4 ALORS GdipIsOutlineVisiblePathPoint(Pointer, point.X, point.Y, pen.Pointer, (graphics = Null ? Null SINON graphics.Pointer), &bResult) SINON GdipIsOutlineVisiblePathPointI(Pointer, point.X, point.Y, pen.Pointer, (graphics = Null ? Null SINON graphics.Pointer), &bResult) FIN RENVOYER bResult
Procedure IsVisible(point, graphics est un Graphics dynamique = Null)
bResult est un booléen
SI TypeVar(point.X) = wlRéel_4 ALORS GdipIsVisiblePathPoint(Pointer, point.X, point.Y, (graphics = Null ? Null SINON graphics.Pointer), &bResult) SINON GdipIsVisiblePathPointI(Pointer, point.X, point.Y, (graphics = Null ? Null SINON graphics.Pointer), &bResult) FIN RENVOYER bResult
Procedure SetMarker()
GdipSetPathMarker(Pointer)
Procedure StartFigure()
GdipStartPathFigure(Pointer)
Procedure Warp(destPoints est un tableau de POINTF, srcRect est un RECTF, matrix est un Matrix dynamique = Null, warpMode est un entier = WarpModePerspective, flatness est un réel sur 4 = FlatnessDefault)
GdipWarpPath(Pointer, (matrix = Null ? Null SINON matrix.Pointer), &destPoints, destPoints..Occurrence, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, warpMode, flatness)
,
Procedure Widen(pen est un Pen dynamique, matrix est un Matrix dynamique = Null, flatness est un réel sur 4 = FlatnessDefault)
GdipWidenPath(Pointer, pen.Pointer, (matrix = Null ? Null SINON matrix.Pointer), flatness)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 12:10 |
GraphicsPathIterator
GraphicsPathIterator est une Classe hérite de GDIPObjet FIN
Procedure Constructeur(path est un GraphicsPath dynamique = Null)
nPtr est un entier système
SI path <> Null ALORS GdipCreatePathIter(&nPtr, path.Pointer) FIN GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure Count()
nCount est un entier GdipPathIterGetCount(Pointer, &nCount)
RENVOYER nCount
Procedure PRIVÉE Count(v <utile>)
Procedure SubpathCount()
nCount est un entier GdipPathIterGetSubpathCount(Pointer, &nCount)
RENVOYER nCount
Procedure PRIVÉE SubpathCount(v <utile>)
Procedure HasCurve()
bVal est un booléen GdipPathIterHasCurve(Pointer, &bVal)
RENVOYER bVal
Procedure PRIVÉE HasCurve(v <utile>)
Procedure VIRTUELLE PRIVÉE Clone()
Procedure VIRTUELLE Dispose()
GdipDeletePathIter(Pointer)
GDIPObjet.Dispose()
Procedure CopyData(points est un tableau de POINTF, types est un tableau d'entiers sans signe, startIndex est un entier, endIndex est un entier)
nCount est un entier
GdipPathIterCopyData(Pointer, &nCount, &points, &types, startIndex, endIndex) RENVOYER nCount
Procedure CopyData(points est un tableau de POINTF, types est un tableau d'entiers sans signe, startIndex est un entier, endIndex est un entier)
nCount est un entier
GdipPathIterCopyData(Pointer, &nCount, &points, &types, startIndex, endIndex) RENVOYER nCount
Procedure Enumerate(points est un tableau de POINTF, types est un tableau d'entiers sans signe)
nCount est un entier
GdipPathIterEnumerate(Pointer, &nCount, &points, &types, points..Occurrence) RENVOYER nCount
Procedure NextMarker(path est un GraphicsPath dynamique = Null, startIndex est un entier = 0, endIndex est un entier = 0)
nCount est un entier
SI path = Null ALORS GdipPathIterNextMarker(Pointer, &nCount, &startIndex, &endIndex) SINON GdipPathIterNextMarkerPath(Pointer, &nCount, path.Pointer) FIN RENVOYER nCount
Procedure NextPathType(type est un entier sans signe sur 1, startIndex est un entier, endindex est un entier)
nCount est un entier
GdipPathIterNextPathType(Pointer, &nCount, &type, &startIndex, &endindex) RENVOYER nCount
Procedure NextSubpath(path est un GraphicsPath dynamique = Null, isClosed est un booléen = Faux, startIndex est un entier = 0, endIndex est un entier = 0)
nCount est un entier
SI path = Null ALORS GdipPathIterNextSubpath(Pointer, &nCount, &startIndex, &endIndex, &isClosed) SINON GdipPathIterNextSubpathPath(Pointer, &nCount, path.Pointer, &isClosed) FIN RENVOYER nCount
Procedure Rewind()
GdipPathIterRewind(Pointer)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 12:46 |
HatchBrush
Cria um HatchBrush : objeto baseado em um estilo portal, uma cor de primeiro plano e uma cor de fundo.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms535446%28v=vs.85%29.aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms534040%28v=vs.85%29.aspx
HatchBrush est une Classe hérite de Brush
FIN
Procedure Constructeur(hatchStyle est un entier = HatchStyleMin, foreColor est un Color dynamique = Color.White, backColor est un Color dynamique = Color.Black)
nPtr est un entier système GdipCreateHatchBrush(hatchStyle, foreColor.Value, backColor.Value, &nPtr) Brush.Constructeur(nPtr)
Procedure Destructeur()
Procedure BackgroundColor()
nColor est un entier pclColor est un Color dynamique = allouer un Color GdipGetHatchBackgroundColor(Pointer, &nColor) pclColor.Value = nColor RENVOYER pclColor
Procedure PRIVÉE BackgroundColor(v <utile>)
Procedure ForegroundColor()
nColor est un entier pclColor est un Color dynamique = allouer un Color GdipGetHatchForegroundColor(Pointer, &nColor) pclColor.Value = nColor RENVOYER pclColor
Procedure PRIVÉE ForegroundColor(v <utile>)
Procedure HatchStyle()
nStyle est un entier GdipGetHatchStyle(Pointer, &nStyle)
RENVOYER nStyle
Procedure PRIVÉE HatchStyle(v <utile>)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un HatchBrush dynamique = allouer un HatchBrush GdipCloneBrush(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 13:20 |
Image
Você pode usar GDI+ para processar imagens que existem como arquivos em seus aplicativos.Fazer isso criando um novo objeto de um Image classe (como Bitmap), criar um Graphics de objeto que se refere a superfície de desenho que você deseja usar e chamando o DrawImage método da Graphics objeto.A imagem será pintada representada pela classe gráficos de superfície de desenho.Você pode usar o Editor de imagem para criar e editar arquivos de imagem no tempo de design e processá-las com GDI+ em tempo de execução.Para obter mais informações, consulte Editor de imagens para ícones.
A Imagem classe fornece métodos para carregar e salvar imagens raster (bitmaps) e imagens vetoriais (metafiles). Um objeto de imagem encapsula um bitmap ou um metarquivo e armazena atributos que você pode recuperar chamando vários métodos get. Você pode construir objetos imagem de uma variedade de tipos de arquivo, incluindo BMP, ICON, GIF, JPEG, Exif, PNG, TIFF, WMF e EMF.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms534462%28v=vs.85%29.aspx
https://msdn.microsoft.com/pt-br/library/bb882579%28v=vs.110%29.aspx
https://msdn.microsoft.com/en-us/library/aa983623%28v=vs.71%29.aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms535407%28v=vs.85%29.aspx
Image est une Classe hérite de GDIPObjet FIN
Procedure PROTÉGÉE Constructeur(nPtr est un entier système = Null) Constructeur GDIPObjet(nPtr)
Procedure Destructeur()
Procedure Flags()
nFlags est un entier GdipGetImageFlags(Pointer, &nFlags)
RENVOYER nFlags
Procedure PRIVÉE Flags(v <utile>)
Procedure FrameDimensionsList()
tabGUID est un tableau de GUID nCount est un entier GdipImageGetFrameDimensionsCount(Pointer, &nCount) Dimension(tabGUID, nCount) GdipImageGetFrameDimensionsList(Pointer, &tabGUID, nCount) RENVOYER tabGUID
Procedure PRIVÉE FrameDimensionsList(v <utile>)
Procedure Height()
nHeight est un entier GdipGetImageHeight(Pointer, &nHeight) RENVOYER nHeight
Procedure PRIVÉE Height(v <utile>)
Procedure HorizontalResolution()
nHorz est un réel sur 4 GdipGetImageHorizontalResolution(Pointer, &nHorz)
RENVOYER nHorz
Procedure PRIVÉE HorizontalResolution(v <utile>)
Procedure Palette()
stPalette est un ColorPalette sz est un entier buf est un Buffer tabColors est un tableau d'entiers GdipGetImagePaletteSize(Pointer, &sz) buf = Répète(Caract(0), sz)
Transfert(&stPalette.Flags, &buf, 4) Transfert(&stPalette.Count, (&buf) + 4, 4) Dimension(stPalette.Entries, stPalette.Count) Dimension(tabColors, stPalette.Count) Transfert(&tabColors, (&buf) + 4, stPalette.Count * 4) POUR i = 1 _A_ stPalette.Count stPalette.Entries[i] = allouer un Color(tabColors[i]) FIN RENVOYER stPalette
Procedure Palette(stValeur est un ColorPalette)
buf est un Buffer = Répète(Caract(0), 8 + stValeur.Count * 4) tabColors est un tableau d'entiers POUR TOUT pclColor DE stValeur.Entries Ajoute(tabColors, pclColor.Value) FIN Transfert(&buf, &stValeur, 8) Transfert((&buf) + 8, &tabColors, stValeur.Count * 4) GdipSetImagePalette(Pointer, &buf)
Procedure PhysicalDimension()
stSize est un SIZEF GdipGetImageDimension(Pointer, &stSize.Width, &stSize.Height)
RENVOYER stSize
Procedure PRIVÉE PhysicalDimension(v <utile>)
Procedure PixelFormat()
nFormat est un entier GdipGetImagePixelFormat(Pointer, &nFormat)
RENVOYER nFormat
Procedure PRIVÉE PixelFormat(v <utile>)
Procedure PropertyIdList()
nCount est un entier tabProp est un tableau d'entiers GdipGetPropertyCount(Pointer, &nCount) Dimension(tabProp, nCount) GdipGetPropertyIdList(Pointer, nCount, &tabProp) RENVOYER tabProp
Procedure PRIVÉE PropertyIdList(v <utile>)
Procedure PropertyItems()
nCount est un entier sz est un entier tabProp est un tableau de PropertyItem buf est un Buffer nPtr est un entier système len est un entier bufLoc est un Buffer _byte est un tableau d'entier sans signe sur 1 _long est un tableau d'entier _short est un tableau d'entier sur 2 _ptr est un entier système GdipGetPropertySize(Pointer, &sz, &nCount) Dimension(tabProp, nCount) buf = Répète(Caract(0), sz) GdipGetAllPropertyItems(Pointer, sz, nCount, &buf) nPtr = &buf POUR i = 1 _A_ nCount bufLoc = "" Transfert(&tabProp[i].id, nPtr, 4) Transfert(&tabProp[i].length, nPtr + 4, 4) Transfert(&tabProp[i].type, nPtr + 8, 4) Transfert(&_ptr, nPtr + 12, 4) len = tabProp[i].length SELON tabProp[i].type CAS PropertyTagTypeByte Dimension(_byte, len) Transfert(&_byte, _ptr, len) tabProp[i].value = _byte CAS PropertyTagTypeLong Dimension(_long, len / 4) Transfert(&_long, _ptr, len) tabProp[i].value = _long
CAS PropertyTagTypeShort Dimension(_short, len / 2) Transfert(&_short, _ptr, len) tabProp[i].value = _short
CAS PropertyTagTypeSLONG, PropertyTagTypeRational, PropertyTagTypeSRational bufLoc = Répète(Caract(0), len) Transfert(&bufLoc, _ptr, len) tabProp[i].value = bufLoc CAS PropertyTagTypeASCII bufLoc = Répète(Caract(0), len - 1) Transfert(&bufLoc, _ptr, len - 1) tabProp[i].value = bufLoc CAS PropertyTagTypeUndefined bufLoc = Répète(Caract(0), len) Transfert(&bufLoc, _ptr, len) tabProp[i].value = bufLoc FIN nPtr += 16 FIN
RENVOYER tabProp
Procedure PropertyItems(Valeur)
Procedure RawFormat()
stGUID est une GUID GdipGetImageRawFormat(Pointer, &stGUID)
RENVOYER stGUID
Procedure PRIVÉE RawFormat(v <utile>)
Procedure Width()
nWidth est un entier GdipGetImageWidth(Pointer, &nWidth)
RENVOYER nWidth
Procedure PRIVÉE Width(v <utile>)
Procedure Size()
stSize est un SIZE = [Width, Height]
RENVOYER stSize
Procedure PRIVÉE Size(v <utile>)
Procedure VerticalResolution()
nVert est un entier GdipGetImageVerticalResolution(Pointer, &nVert)
RENVOYER nVert
Procedure PRIVÉE VerticalResolution(v <utile>)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un Image dynamique = allouer un Image GdipCloneImage(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure VIRTUELLE Dispose()
GdipDisposeImage(Pointer)
GDIPObjet.Dispose()
Procedure GLOBALE fromFile(fileName est une chaîne, bICM est un booléen = Faux)
nPtr est un entier système pclObjet est un Image dynamique = allouer un Image u est une chaîne UNICODE = fileName SI bICM ALORS GdipLoadImageFromFileICM(&u, &nPtr) SINON GdipLoadImageFromFile(&u, &nPtr) FIN pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE FromMemory(buffer est un Buffer, bICM est un booléen = Faux)
nPtr est un entier système pclObjet est un Image dynamique = allouer un Image nPtrStream est un entier système nPtrGlobal est un entier système nPtrGlobal = API("kernel32", "GlobalAlloc", 0x0040, Taille(buffer)) Transfert(nPtrGlobal, &buffer, Taille(buffer)) API("ole32", "CreateStreamOnHGlobal", nPtrGlobal, Vrai, &nPtrStream) SI bICM ALORS GdipLoadImageFromStreamICM(nPtrStream, &nPtr) SINON GdipLoadImageFromStream(nPtrStream, &nPtr) FIN AppelInterface(nPtrStream, 2) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GetBounds(pageUnit est un entier)
stRectF est un RECTF GdipGetImageBounds(Pointer, &stRectF, &pageUnit) RENVOYER stRectF
Procedure GetEncoderParameterList(encoder est un GUID)
sz est un entier buffer est un Buffer encParam est un EncoderParameters GdipGetEncoderParameterListSize(Pointer, &encoder, &sz) buffer = Répète(Caract(0), sz) GdipGetEncoderParameterList(Pointer, &encoder, sz, &buffer) Transfert(&encParam.Count, &buffer, 4) Dimension(encParam.Parameter, encParam.Count) Transfert(&encParam.Parameter, (&buffer) + 4, (encParam.Count * TableauInfo(encParam.Parameter, tiTailleElément))) RENVOYER encParam
Procedure GetFrameCount(frameDimension est un GUID)
nCount est un entier GdipImageGetFrameCount(Pointer, &frameDimension, &nCount) RENVOYER nCount
Procedure GetPropertyItem(propid est un entier)
stProp est un PropertyItem sz est un entier buf est un Buffer bufLoc est un Buffer _ptr est un entier système len est un entier nPtr est un entier système _byte est un tableau d'entiers sans signe sur 1 _short est un tableau d'entiers sur 2 _long est un tableau d'entiers GdipGetPropertyItemSize(Pointer, propid, &sz) buf = Répète(Caract(0), sz) GdipGetPropertyItem(Pointer, propid, sz, &buf) nPtr = &buf Transfert(&stProp.id, nPtr, 4) Transfert(&stProp.length, nPtr + 4, 4) Transfert(&stProp.type, nPtr + 8, 4) Transfert(&_ptr, nPtr + 12, 4) len = stProp.length SELON stProp.type CAS PropertyTagTypeByte Dimension(_byte, len) Transfert(&_byte, _ptr, len) stProp.value = _byte CAS PropertyTagTypeLong Dimension(_long, len / 4) Transfert(&_long, _ptr, len) stProp.value = _long
CAS PropertyTagTypeShort Dimension(_short, len / 2) Transfert(&_short, _ptr, len) stProp.value = _short
CAS PropertyTagTypeSLONG, PropertyTagTypeRational, PropertyTagTypeSRational bufLoc = Répète(Caract(0), len) Transfert(&bufLoc, _ptr, len) stProp.value = bufLoc CAS PropertyTagTypeASCII bufLoc = Répète(Caract(0), len - 1) Transfert(&bufLoc, _ptr, len - 1) stProp.value = bufLoc CAS PropertyTagTypeUndefined bufLoc = Répète(Caract(0), len) Transfert(&bufLoc, _ptr, len) stProp.value = bufLoc FIN RENVOYER stProp
Procedure GetThumbnailImage(thbwidth est un entier, thbheight est un entier)
nPtr est un entier système pclImage est un Image dynamique = allouer un Image
GdipGetImageThumbnail(Pointer, thbwidth, thbheight, &nPtr, Null, Null) pclImage.Pointer = nPtr RENVOYER pclImage
Procedure RemovePropertyItem(propid est un entier)
GdipRemovePropertyItem(Pointer, propid)
Procedure RotateFlip(flip est un entier)
GdipImageRotateFlip(Pointer, flip)
Procedure GetEncoderFormat(format est un GUID)
encoders est un tableau de ImageCodecInfo nCount est un entier sz est un entier bufEnc est un Buffer encoder est un ImageCodecInfo dynamique = Null GdipGetImageEncodersSize(&nCount, &sz) bufEnc = Répète(Caract(0), sz) Dimension(encoders, nCount) GdipGetImageEncoders(nCount, sz, &bufEnc) Transfert(&encoders, &bufEnc, TableauInfo(encoders, tiTailleElément) * nCount) POUR i = 1 _A_ nCount SI IsEqualGUID(encoders[i].FormatID, format) ALORS encoder = encoders[i] SORTIR FIN FIN
RENVOYER encoder
Procedure Save(filename est une chaîne, format est un GUID = RawFormat, bMemory est un booléen = Faux, encoderParams est un EncoderParameters dynamique = Null)
encoder est un ImageCodecInfo dynamique = GetEncoderFormat(format) u est une chaîne UNICODE = filename bufImage est un Buffer nPtrStream est un entier système nPtrGlobal est un entier système nPtrLock est un entier système SI encoder = Null ALORS encoder = GetEncoderFormat(RawFormat) FIN SI encoder <> Null ALORS SI bMemory ALORS nPtrGlobal = API("kernel32", "GlobalAlloc", 0x0042, 0) API("ole32", "CreateStreamOnHGlobal", nPtrGlobal, Vrai, &nPtrStream) GdipSaveImageToStream(Pointer, nPtrStream, &encoder.Clsid, (encoderParams = Null ? Null SINON &encoderParams)) bufImage = Répète(Caract(0), API("kernel32", "GlobalSize", nPtrGlobal)) nPtrLock = API("kernel32", "GlobalLock", nPtrGlobal) Transfert(&bufImage, nPtrLock, Taille(bufImage)) API("kernel32", "GlobalUnlock", nPtrGlobal) AppelInterface(nPtrStream, 2) SINON RENVOYER (GdipSaveImageToFile(Pointer, &u, &encoder.Clsid, (encoderParams = Null ? Null SINON &encoderParams)) = Ok) FIN FIN SI bMemory ALORS RENVOYER bufImage SINON RENVOYER Faux FIN
Procedure SaveAdd(encoderParams est un EncoderParameters, Image est un Image dynamique = Null)
SI Image = Null ALORS GdipSaveAdd(Pointer, &encoderParams) SINON GdipSaveAddImage(Pointer, Image.Pointer, &encoderParams) FIN
Procedure SelectActiveFrame(frameDimension est un GUID, frameIndex est un entier)
GdipImageSelectActiveFrame(Pointer, &frameDimension, frameIndex)
Procedure SetPropertyItem(propItem est un PropertyItem)
bufProp est un Buffer nPtr est un entier système _tab est un tableau dynamique _sz est un Buffer _nz est un entier bufProp = Répète(Caract(0), 12) Transfert(&bufProp, &propItem, 12) bufProp += Répète(Caract(0), 4) nPtr = &bufProp + 16 Transfert((&bufProp) + 12, &nPtr, 4) bufProp += Répète(Caract(0), propItem.length) SELON propItem.type CAS PropertyTagTypeByte _tab = allouer un tableau de (propItem.length) entiers sans signe sur 1 _tab = propItem.value Transfert(nPtr, &_tab, propItem.length) CAS PropertyTagTypeLong _nz = propItem.length / 4 _tab = allouer un tableau de (_nz) entiers _tab = propItem.value Transfert(nPtr, &_tab, propItem.length) CAS PropertyTagTypeShort _nz = propItem.length / 2 _tab = allouer un tableau de (_nz) entiers sur 2 _tab = propItem.value Transfert(nPtr, &_tab, propItem.length) AUTRES CAS _sz = propItem.value Transfert(nPtr, &_sz, propItem.length) FIN GdipSetPropertyItem(Pointer, &bufProp)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 14:04 |
ImageAttributes
Um ImageAttributes objeto contém informações sobre como as cores de bitmap e metafile são manipulados durante o processamento. Um ImageAttributes objeto mantém várias configurações de cor-de ajustamento, incluindo matrizes cor-de ajuste, matrizes em tons de cinza-ajuste, os valores gamma-correção, mesas cor-mapa, e os valores de cor-de limiar.
http://www.c-sharpcorner.com/uploadfile/mahesh/image-attributes-and-the-imageattributes-class-in-gdi/
ImageAttributes est une Classe hérite de GDIPObjet FIN
Procedure Constructeur() nPtr est un entier système GdipCreateImageAttributes(&nPtr)
GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure ClearBrushRemapTable()
ClearRemapTable(ColorAdjustTypeBrush)
Procedure ClearColorKey(type est un entier = ColorAdjustTypeDefault)
GdipSetImageAttributesColorKeys(Pointer, type, Faux, 0, 0)
Procedure ClearColorMatrix(type est un entier = ColorAdjustTypeDefault)
GdipSetImageAttributesColorMatrix(Pointer, type, Faux, Null, Null, ColorMatrixFlagsDefault)
Procedure ClearGamma(type est un entier = ColorAdjustTypeDefault)
GdipSetImageAttributesGamma(Pointer, type, Faux, 0)
Procedure ClearNoOp(type est un entier = ColorAdjustTypeDefault) GdipSetImageAttributesNoOp(Pointer, type, Faux)
Procedure ClearOutputChannel(type est un entier = ColorAdjustTypeDefault)
GdipSetImageAttributesOutputChannel(Pointer, type, Faux, ColorChannelFlagsLast)
Procedure ClearOutputChannelColorProfile(type est un entier = ColorAdjustTypeDefault)
GdipSetImageAttributesOutputChannelColorProfile(Pointer, type, Faux, Null)
Procedure ClearRemapTable(type est un entier = ColorAdjustTypeDefault) GdipSetImageAttributesRemapTable(Pointer, type, Faux, 0, Null)
Procedure ClearThreshold(type est un entier = ColorAdjustTypeDefault) GdipSetImageAttributesThreshold(Pointer, type, Faux, 0)
Procedure SetColorMatrix(colormatrix est un ColorMatrix, grayMatrix est un ColorMatrix dynamique, type est un entier = ColorAdjustTypeDefault, flags est un entier = ColorMatrixFlagsDefault)
GdipSetImageAttributesColorMatrix(Pointer, type, Faux, &colormatrix, (grayMatrix = Null ? Null SINON &grayMatrix), flags)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un ImageAttributes dynamique = allouer un ImageAttributes GdipCloneImageAttributes(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure VIRTUELLE Dispose()
GdipDisposeImageAttributes(Pointer)
GDIPObjet.Dispose()
Procedure GetAdjustedPalette(Palette est un ColorPalette, type est un entier)
tabPalette est un tableau d'entiers vcPalette est composée de flags est un entier Count est un entier ptr est un entier système FIN
GdipGetImageAttributesAdjustedPalette(Pointer, &vcPalette, &type) Dimension(tabPalette, vcPalette.count) Transfert(&tabPalette, vcPalette.ptr, TableauInfo(tabPalette, tiTailleTotale)) Palette.Count = vcPalette.count Palette.Flags = vcPalette.Flags POUR i = 1 _A_ tabPalette..Occurrence Ajoute(Palette.Entries, allouer un Color(tabPalette[i])) FIN
Procedure SetBrushRemapTable(map est un tableau de ColorMap)
SetRemapTable(map, ColorAdjustTypeBrush)
Procedure SetGamma(gamma est un réel sur 4, type est un entier = ColorAdjustTypeDefault)
GdipSetImageAttributesGamma(Pointer, type, Vrai, gamma)
Procedure SetNoOp(type est un entier = ColorAdjustTypeDefault) GdipSetImageAttributesNoOp(Pointer, type, Vrai)
Procedure SetOutputChannel(flag est un entier = ColorChannelFlagsLast, type est un entier = ColorAdjustTypeDefault)
GdipSetImageAttributesOutputChannel(Pointer, type, Vrai, flag)
Procedure SetOutputChannelColorProfile(colorProfileFilename est une chaîne, type est un entier = ColorAdjustTypeDefault)
u est une chaîne UNICODE = colorProfileFilename GdipSetImageAttributesOutputChannelColorProfile(Pointer, type, Vrai, &u)
Procedure SetRemapTable(map est un tableau de ColorMap, type est un entier = ColorAdjustTypeDefault)
_gdiMap est une structure oldC est un entier newC est un entier FIN
tabMap est un tableau de _gdiMap stMap est un _gdiMap POUR i = 1 _A_ map..Occurrence stMap = [map[i].oldColor.Value, map[i].newColor.Value] Ajoute(tabMap, stMap) FIN GdipSetImageAttributesRemapTable(Pointer, type, Vrai, map..Occurrence, &tabMap)
Procedure SetThreshold(threshold est un réel sur 4, type est un entier = ColorAdjustTypeDefault) GdipSetImageAttributesThreshold(Pointer, type, Vrai, threshold)
Procedure SetWrapMode(mode est un entier, color_ est un Color dynamique = Color.Black, clamp est un booléen = Faux)
GdipSetImageAttributesWrapMode(Pointer, mode, color_.Value, clamp)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 14:16 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 14:41 |
LinearGradientBrush
LinearGradientBrush e PathGradientBrush para preencher um retângulo e um caminho.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms535353%28v=vs.85%29.aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms534043%28v=vs.85%29.aspx
http://www.c-sharpcorner.com/uploadfile/dbeniwal321/using-lineargradientbrush-and-pathgradientbrush-in-gdi/
LinearGradientBrush est une Classe hérite de Brush FIN
Procedure Constructeur(point1 = Null, point2 = Null, color1 est un Color dynamique = Color.White, color2 est un Color dynamique = Color.White, wrapMode est un entier = WrapModeTile, linearGradientMode est un entier = 0, angle est un réel sur 4 = 0, isAngleScaleable est un booléen = Faux)
nPtr est un entier système stRect est un RECT stRectF est un RECTF SI MesParamètres[6]..Défaut = Faux ALORS SI TypeVar(point1.X) = wlRéel_4 ALORS stRectF = [point1.x, point1.y, point2.x - point1.x, point2.y - point1.y] GdipCreateLineBrushFromRect(&stRectF, color1.Value, color2.Value, linearGradientMode, wrapMode, &nPtr) SINON stRect = [point1.x, point1.y, point2.x - point1.x, point2.y - point1.y] GdipCreateLineBrushFromRectI(&stRectF, color1.Value, color2.Value, linearGradientMode, wrapMode, &nPtr) FIN SINON SI MesParamètres[6]..Défaut = Faux ALORS SI TypeVar(point1.X) = wlRéel_4 ALORS stRectF = [point1.x, point1.y, point2.x - point1.x, point2.y - point1.y] GdipCreateLineBrushFromRectWithAngle(&stRectF, color1.Value, color2.Value, angle, isAngleScaleable, wrapMode, &nPtr) SINON stRect = [point1.x, point1.y, point2.x - point1.x, point2.y - point1.y] GdipCreateLineBrushFromRectWithAngleI(&stRectF, color1.Value, color2.Value, angle, isAngleScaleable, wrapMode, &nPtr) FIN SINON SI TypeVar(point1.X) = wlRéel_4 ALORS GdipCreateLineBrush(&point1, &point2, color1.Value, color2.Value, wrapMode, &nPtr) SINON GdipCreateLineBrushI(&point1, &point2, color1.Value, color2.Value, wrapMode, &nPtr) FIN FIN Brush.Constructeur(nPtr)
Procedure Destructeur()
Procedure Blend()
stBlend est un Blend nCount est un entier GdipGetLineBlendCount(Pointer, &nCount) stBlend.Factors = allouer un tableau de (nCount) réels sur 4 stBlend.Positions = allouer un tableau de (nCount) réels sur 4 GdipGetLineBlend(Pointer, &stBlend.Factors, &stBlend.Positions, nCount) RENVOYER stBlend
Procedure Blend(stValeur est un Blend)
GdipSetLineBlend(Pointer, &stValeur.Factors, &stValeur.Positions, stValeur.Positions..Occurrence)
Procedure GammaCorrection()
bGamma est un booléen GdipGetLineGammaCorrection(Pointer, &bGamma)
RENVOYER bGamma
Procedure GammaCorrection(bValeur est un booléen)
GdipSetLineGammaCorrection(Pointer, bValeur)
Procedure InterpolationColors()
tabARGB est un tableau d'entiers stInterpol est un ColorBlend nCount est un entier GdipGetLinePresetBlendCount(Pointer, &nCount) tabARGB = allouer un tableau de (nCount) entiers stInterpol.Colors = allouer un tableau de (nCount) Color dynamique stInterpol.Positions = allouer un tableau de (nCount) réels sur 4 GdipGetLinePresetBlend(Pointer, &tabARGB, &stInterpol.Positions, nCount) POUR i = 1 _A_ nCount stInterpol.Colors[i] = allouer un Color(tabARGB[i]) FIN
RENVOYER stInterpol
Procedure InterpolationColors(stValeur est un ColorBlend)
tabARGB est un tableau d'entiers POUR CHAQUE pclColor DE stValeur.Colors Ajoute(tabARGB, pclColor.Value) FIN
GdipSetLinePresetBlend(Pointer, &tabARGB, &stValeur.Positions, stValeur.Positions..Occurrence)
Procedure LinearColors()
tabARGB est un tableau de 2 entiers tabColors est un tableau de 2 Color dynamique GdipGetLineColors(Pointer, &tabARGB)
tabColors[1] = allouer un Color(tabARGB[1]) tabColors[2] = allouer un Color(tabARGB[2]) RENVOYER tabColors
Procedure LinearColors(tabValeur est un tableau de 2 Color dynamique)
tabARGB est un tableau de 2 entiers tabARGB[1] = tabValeur[1].Value tabARGB[2] = tabValeur[2].Value GdipSetLineColors(Pointer, tabARGB[1], tabARGB[2])
Procedure Rectangle()
stRect est un RECT GdipGetLineRectI(Pointer, &stRect)
RENVOYER stRect
Procedure PRIVÉE Rectangle(v <utile>)
Procedure RectangleF()
stRect est un RECTF GdipGetLineRect(Pointer, &stRect)
RENVOYER stRect
Procedure PRIVÉE RectangleF(v <utile>)
Procedure Transform()
nPtr est un entier système pclObjet est un Matrix dynamique = allouer un Matrix GdipGetLineTransform(Pointer, &nPtr) pclObjet.Pointer = nPtr
RENVOYER pclObjet
Procedure Transform(pclValeur est un Matrix dynamique)
GdipSetLineTransform(Pointer, pclValeur.Pointer)
Procedure WrapMode()
nWrap est un entier GdipGetLineWrapMode(Pointer, &nWrap)
RENVOYER nWrap
Procedure WrapMode(nValeur est un entier)
GdipSetLineWrapMode(Pointer, nValeur)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un LinearGradientBrush dynamique = allouer un LinearGradientBrush GdipCloneBrush(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure MultiplyTransform(matrix est un Matrix dynamique, order est un entier = MatrixOrderPrepend)
GdipMultiplyLineTransform(Pointer, matrix.Pointer, order)
Procedure ResetTransform()
GdipResetLineTransform(Pointer)
Procedure RotateTransform(angle est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipRotateLineTransform(Pointer, angle, order)
Procedure ScaleTransform(sx est un réel sur 4, sy est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipScaleLineTransform(Pointer, sx, sy, order)
Procedure TranslateTransform(dx est un réel sur 4, dy est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipTranslateLineTransform(Pointer, dx, dy, order)
Procedure SetBlendTriangularShape(focus est un réel sur 4, scale est un réel sur 4 = 1.0)
GdipSetLineLinearBlend(Pointer, focus, scale)
Procedure SetSigmaBellShape(focus est un réel sur 4, scale est un réel sur 4 = 1.0)
GdipSetLineSigmaBlend(Pointer, focus, scale)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 15:37 |
Matrix Class
Uma matriz de objecto representa uma matriz de 3 x 3 que, por sua vez, representa uma transformação afim. A matriz de objectos armazena apenas seis dos 9 números em uma matriz de 3 x 3, porque todos os 3 × 3 matrizes que representam transformações afins têm a mesma terceira coluna (0, 0, 1). Transformações afins incluem girar, dimensionar, refletindo, corte, e tradução. Em GDI +, a Matrix classe fornece a base para a realização de transformações afins em desenhos vetoriais, imagens e texto.
Um m × n matriz é um conjunto de números dispostos em m linhas e n colunas. A ilustração a seguir mostra várias matrizes.
Ilustração que mostra seis matrizes de dimensões variáveis
Você pode adicionar duas matrizes do mesmo tamanho pela adição de elementos individuais. A ilustração a seguir mostra dois exemplos de adição de matrizes.
Ilustração que mostra como executar adição de matrizes
Um m × n matriz pode ser multiplicada por um n × p matriz, eo resultado é uma m × p matriz. O número de colunas na primeira matriz tem de ser o mesmo que o número de linhas na segunda matriz. Por exemplo, uma matriz de 4 × 2 pode ser multiplicado por uma matriz 2 x 3 para produzir uma matriz 4 x 3.
Pontos no plano e linhas e colunas de uma matriz pode ser pensado como vectores. Por exemplo, (2, 5) é um vector com dois componentes, e (3, 7, 1) é um vector com três componentes. O produto escalar de dois vectores é definido como se segue:
(A, b) ?? (C, d) = AC + BD
(A, b, c) ?? (D, e, f) = ad + estar + cf
Por exemplo, o produto de ponto de (2, 3) e (5, 4), (2) (5) + (3) (4) = 22. O produto de ponto de (2, 5, 1) e (4, 3, 1) é (2) (4) + (5) (3) + (1) (1) = 24. Note-se que o produto de ponto de dois vectores é um número, não um outro vector. Observe também que você pode calcular o produto escalar somente se os dois vetores têm o mesmo número de componentes.
Sejam A (i, j) é a entrada na matriz A em o i th fileira e o j th coluna. Por exemplo, um (3, 2) é a entrada na matriz A no 3 rd linha e o 2 nd coluna. Suponhamos que A, B, e C são matrizes, e AB = C. As entradas de C são calculados como se segue:
C (i, j) = (linha i de A) ?? (Coluna j de
A ilustração a seguir mostra vários exemplos de multiplicação de matrizes.
Ilustração que mostra como executar a multiplicação de matrizes
Se você pensar em um ponto no plano como uma matriz 1 × 2, você pode transformar esse ponto pela multiplicação por uma matriz de 2 × 2. A ilustração a seguir mostra várias transformações aplicadas ao ponto (2, 1).
Ilustração que mostra como usar a multiplicação de matrizes para dimensionar, girar ou refletir um ponto em um plano
Todas as transformações mostradas na figura anterior são transformações lineares. Certas outras transformações, tal como a tradução, não é linear, e não pode ser expressa como a multiplicação por uma matriz 2 x 2. Suponha que você queira começar com o ponto (2, 1), girá-lo 90 graus, traduzi-la 3 unidades na direção x, e traduzi-lo 4 unidades na direção y. Você pode fazer isso através da realização de uma multiplicação de matrizes seguido por uma adição de matrizes.
Ilustração que mostra como a multiplicação de matrizes e adição pode girar um ponto e traduzi-lo duas vezes
A transformação linear (multiplicação por uma matriz 2 x 2) seguido de tradução (adição de uma matriz 1 × 2) é chamado uma transformação afim. Uma alternativa ao armazenamento de uma transformação afim de um par de matrizes (um para a parte linear e outra para a tradução) é para guardar toda a transformação em uma matriz de 3 x 3. Para fazer isto funcionar, um ponto no plano deve ser armazenado numa matriz de 1 × 3 com um manequim 3 de coordenadas. A técnica usual é a de fazer coordena todas as 3 igual a 1. Por exemplo, o ponto (2, 1) é representado pela matriz [2 1 1]. A ilustração a seguir mostra uma transformação afim (girar 90 graus; traduzir 3 unidades na direção x, 4 unidades na direção y) expressa como a multiplicação por uma única matriz 3 × 3.
Ilustração que mostra como a multiplicação de matrizes pode executar uma transformação afim
No exemplo anterior, o ponto (2, 1) é mapeado para o ponto (2, 6). Note-se que a terceira coluna da matriz de 3 x 3 contém os números 0, 0, 1. Este será sempre o caso para a matriz de 3 x 3 de uma transformação afim. Os números importantes são os seis números nas colunas 1 e 2. A 2 × 2 parte superior esquerda da matriz representa a parte linear da transformação, e as duas primeiras entradas na 3ª fila representam a tradução.
Ilustração que mostra que as duas primeiras colunas são mais significativas para uma matriz de 3x3 de uma transformação afim
No Windows GDI + você pode armazenar uma transformação afim em uma Matrix objeto. Porque a terceira coluna de uma matriz que representa uma transformação afim é sempre (0, 0, 1), especifique apenas os seis números nas duas primeiras colunas quando você construir uma matriz de objeto. A declaração Matrix myMatrix (0.0f, 1.0f, -1.0f, 0.0f, 3.0f, 4.0f); constrói a matriz mostrada na figura anterior.
Composite Transformations
Uma transformação compósito é uma sequência de transformações, um depois do outro. Considere as matrizes e transformações na lista a seguir:
Matrix A Rodar 90 graus Escala B matriz por um factor de dois na direcção X Matrix C Traduzir 3 unidades na direção y
Se você começar com o ponto (2, 1) - representado pela matriz [2 1 1] - e multiplicar por A, então B, depois C, o ponto (2,1) vai sofrer as três transformações na ordem listada.
[2 1 1]ABC = [ –2 5 1]
Em vez de armazenar as três partes do composto de transformação em três matrizes separadas, é possível multiplicar A, B, e C em conjunto para obter uma única matriz de 3 x 3 que armazena toda a transformação compósito. Suponha ABC = D. Em seguida, um ponto multiplicado por D dá o mesmo resultado que um ponto multiplicado por um, então B, em seguida, C.
[2 1 1] D = [-2 5 1]
A ilustração a seguir mostra as matrizes A, B, C, e D.
Ilustração que mostra como executar múltiplas transformações multiplicando as matrizes constitutivas
O facto de a matriz de uma transformação compósito pode ser formado através da multiplicação das matrizes de transformação individuais significa que qualquer sequência de transformações afins podem ser armazenadas numa única matriz objecto.
Nota A ordem de uma transformação composta é importante. Em geral, girar, em seguida, escala, em seguida, traduzir não é o mesmo que escala, em seguida, gire, em seguida, traduzir. De modo semelhante, a ordem da multiplicação de matrizes é importante. Em geral, a ABC não é a mesma como a BAC.
A Matrix classe fornece vários métodos para a construção de uma transformação composta: Matrix :: Multiply , Matrix :: Rotate , Matrix :: RotateAt , Matrix :: Scale , Matrix :: cisalhamento , e Matrix :: Translate . O exemplo a seguir cria a matriz de uma transformação composto que primeiro gira 30 graus, em seguida, escalas por um factor de dois na direcção y, e, em seguida, se traduz 5 unidades na direcção x.
Matrix myMatrix; myMatrix.Rotate (30.0f); myMatrix.Scale (1.0f, 2.0F, MatrixOrderAppend); myMatrix.Translate (5.0f, 0.0f, MatrixOrderAppend);
A ilustração a seguir mostra a matriz.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms534475%28v=vs.85%29.aspx
https://msdn.microsoft.com/en-us/library/7e1w5dhw%28v=vs.110%29.aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms534044%28v=vs.85%29.aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms536397%28v=vs.85%29.aspx
http://www.codeproject.com/Articles/8281/Matrix-Transformation-of-Images-using-NET-GDIplus
http://www.codeproject.com/Tips/788200/Applying-Matrix-Transformations-in-GDIplus
Matrix est une Classe hérite de GDIPObjet FIN
Procedure Constructeur(rect = Null, plgpts = Null)
nPtr est un entier système SI MesParamètres[1]..Défaut ALORS GdipCreateMatrix(&nPtr) SINON SI TypeVar(plgpts) = wlTableau ALORS Dimension(plgpts, 3) SI TypeVar(rect.X) = wlRéel_4 ALORS GdipCreateMatrix3(&rect, &plgpts, &nPtr) SINON GdipCreateMatrix3I(&rect, &plgpts, &nPtr) FIN SINON GdipCreateMatrix2((rect.X), (rect.Y), (rect.Width), (rect.Height), (plgpts.X), (plgpts.Y), &nPtr) FIN FIN GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure Elements()
tabElts est un tableau de 6 réels sur 4 GdipGetMatrixElements(Pointer, &tabElts) RENVOYER tabElts
Procedure Elements(tabValeur est un tableau de 6 réels sur 4)
GdipSetMatrixElements(Pointer, tabValeur[1], tabValeur[2], tabValeur[3], tabValeur[4], tabValeur[5], tabValeur[6])
Procedure IsIdentity()
bVal est un booléen GdipIsMatrixIdentity(Pointer, &bVal)
RENVOYER bVal
Procedure PRIVÉE IsIdentity(v <utile>)
Procedure IsInvertible()
bVal est un booléen GdipIsMatrixInvertible(Pointer, &bVal) RENVOYER bVal
Procedure PRIVÉE IsInvertible(v <utile>)
Procedure OffsetX() RENVOYER Elements[5]
Procedure PRIVÉE OffsetX(v <utile>)
Procedure OffsetY() RENVOYER Elements[6]
Procedure PRIVÉE OffsetY(v <utile>)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un Matrix dynamique = allouer un Matrix GdipCloneMatrix(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure VIRTUELLE Dispose()
GdipDeleteMatrix(Pointer)
GDIPObjet.Dispose()
Procedure Equals(m est un Matrix dynamique)
bVal est un booléen GdipIsMatrixEqual(Pointer, m.Pointer, &bVal) RENVOYER bVal
Procedure Invert()
GdipInvertMatrix(Pointer)
Procedure Multiply(matrix est un Matrix dynamique, order est un entier = MatrixOrderPrepend)
GdipMultiplyMatrix(Pointer, matrix.Pointer, order)
Procedure Reset()
GdipSetMatrixElements(Pointer, 1, 0, 0, 1, 0, 0)
Procedure Rotate(angle est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipRotateMatrix(Pointer, angle, order)
Procedure RotateAt(angle est un réel sur 4, point est un POINTF, order est un entier = MatrixOrderPrepend)
Cos est un réel sur 4 = Cosinus(angle) Sin est un réel sur 4 = Sinus(angle) e4 est un réel sur 4 = -point.x * Cos + point.y * Sin + point.x e5 est un réel sur 4 = -point.x * Sin + point.y * Cos + point.y m est un tableau de 6 réels sur 4 = Elements SI order = MatrixOrderPrepend ALORS GdipSetMatrixElements(Pointer, Cos * m[1] + Sin * m[3], Cos * m[2] + Sin * m[4], -Sin * m[1] + Cos * m[3], -Sin * m[2] + Cos * m[4], e4 * m[1] + e5 * m[3] + m[5], e4 * m[2] + e5 * m[4] + m[6]) SINON GdipSetMatrixElements(Pointer, m[1] * Cos + m[2] * -Sin, m[1] * Sin + m[2] * Cos, m[3] * Cos + m[4] * -Sin, m[3] * Sin + m[4] * Cos, m[5] * Cos + m[6] * -Sin + e4, m[5] * Sin + m[6] * Cos + e5) FIN
Procedure Scale(scaleX est un réel sur 4, scaleY est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipScaleMatrix(Pointer, scaleX, scaleY, order)
Procedure Shear(shearX est un réel sur 4, shearY est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipShearMatrix(Pointer, shearX, shearY, order)
Procedure TransformPoints(pts)
SI TypeVar(pts[1].X) = wlRéel_4 ALORS GdipTransformMatrixPoints(Pointer, &pts, TableauOccurrence(pts)) SINON GdipTransformMatrixPointsI(Pointer, &pts, TableauOccurrence(pts)) FIN
Procedure TransformVectors(pts)
SI TypeVar(pts[1].X) = wlRéel_4 ALORS GdipVectorTransformMatrixPoints(Pointer, &pts, TableauOccurrence(pts)) SINON GdipVectorTransformMatrixPointsI(Pointer, &pts, TableauOccurrence(pts)) FIN
Procedure Translate(offsetX est un réel sur 4, offsetY est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipTranslateMatrix(Pointer, offsetX, offsetY, order)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 16:53 |
Prezados,
O assunto é muito relevante sobre a classe Matriz, segue maiores detalhes:
Como usar uma matriz de cores para transformar uma única cor
Outras versões GDI+fornece a Image e Bitmap classes para armazenar e manipular imagens. Imagee Bitmap objetos armazenam a cor de cada pixel como um número de 32 bits: de 8 bits cada um para vermelho, verde, azul e alfa.Cada um dos quatro componentes é um número de 0 a 255, com 0 representando nenhum intensidade e 255, que representa a intensidade total.O componente alfa Especifica a transparência da cor: 0 é completamente transparente e 255 é totalmente opaco.
Um vetor de cor é uma tupla de 4 do formulário (vermelho, verde, azul, alfa).Por exemplo, o vetor de cor (0, 255, 0, 255) representa uma cor opaca que nenhum vermelho ou azul, mas tem verde em intensidade total.
Outra convenção para representar cores usa o número 1 para a intensidade total.Usando essa convenção, a cor descrita no parágrafo anterior seria representada pelo vetor (0, 1, 0, 1).GDI+usa a convenção de 1 como intensidade total quando ele realizar transformações de cor.
Você pode aplicar transformações lineares (rotação, dimensionamento e assim por diante) a vetores de cor multiplicando os vetores de cor por uma matriz de 4 × 4.No entanto, você não pode usar uma matriz de 4 × 4 para realizar uma tradução (não linear).Se você adicionar uma coordenada quinta fictícia (por exemplo, o número 1) para cada um dos vetores de cor, você pode usar uma matriz de 5 × 5 para aplicar qualquer combinação de transformações lineares e traduções.Uma transformação que consiste em uma transformação linear seguida de uma tradução é chamada de uma transformação afim.
Por exemplo, suponha que você deseja iniciar com a cor (0.2, 0.0, 0.4, 1.0) e aplicar as transformações seguintes:
Dobrar o componente vermelho
Adicionar 0,2 aos componentes vermelhos, verdes e azuis
A multiplicação de matriz a seguir realizará o par de transformações na ordem listada.
Recolorir
Os elementos de uma matriz de cores são indexados (baseado em zero) por linha e coluna.Por exemplo, a entrada na quinta linha e terceira coluna da matriz m é indicada por M [4] [2].
A matriz de identidade 5 × 5 (mostrado na ilustração a seguir) tem 1s na diagonal e outra em todos os lugares de 0s.Se você multiplicar um vetor de cor, a matriz de identidade, o vetor de cor não é alterada.Uma maneira conveniente para formar a matriz de uma transformação de cor é começar com a matriz de identidade e fazer uma pequena alteração que produz a transformação desejada.
Recolorir
Para uma discussão mais detalhada sobre as matrizes e transformações, consulte sistemas de coordenadas e transformações.
O exemplo a seguir usa uma imagem que é uma cor (0.2, 0.0, 0.4, 1.0) e aplica a transformação descrita nos parágrafos anteriores.
A ilustração a seguir mostra a imagem original à esquerda e a imagem transformada no lado direito. Cores
O código no exemplo a seguir usa as seguintes etapas para executar o Recolorir:
Inicializar um ColorMatrix objeto.
Criar um ImageAttributes de objetos e passar a ColorMatrix o objeto para o SetColorMatrix método da ImageAttributes objeto.
Passar o ImageAttributes o objeto para o DrawImage o método de um Graphics objeto.
Como converter cores de imagens?
Uma tradução adiciona um valor a um ou mais dos componentes de cor de quatro.As entradas de matriz de cores que representam as traduções são fornecidas na tabela a seguir.
O exemplo seguinte constrói uma Image o objeto do arquivo ColorBars.bmp.Em seguida, o código adiciona 0,75 para o componente vermelho de cada pixel na imagem.A imagem original é desenhada juntamente com a imagem transformada.
A ilustração a seguir mostra a imagem original à esquerda e a imagem transformada no lado direito. Converter cores
A tabela a seguir lista os vetores de cor para as quatro barras antes e após a tradução de vermelha.Observe que, como o valor máximo para um componente de cor é 1, o componente vermelho na segunda linha não é alterado.(Da mesma forma, o valor mínimo para um componente de cor é 0).
Como usar transformações para ajustar a escala de cores?
Uma transformação de escala multiplica um ou mais dos componentes de cor de quatro, por um número.A tabela a seguir recebem as entradas de matriz de cores que representam o dimensionamento.
Uma cor de escala
O exemplo seguinte constrói uma Image o objeto do arquivo ColorBars2.bmp.Em seguida, o código dimensiona o componente azul de cada pixel na imagem por um fator de 2.A imagem original é desenhada juntamente com a imagem transformada.
Image Image = new Bitmap("ColorBars2.bmp"); ImageAttributes imageAttributes = new ImageAttributes(); int width = Image.Width; int height = Image.Height;
float[][] colorMatrixElements = { new float[] {1, 0, 0, 0, 0}, new float[] {0, 1, 0, 0, 0}, new float[] {0, 0, 2, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1}};
ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);
imageAttributes.SetColorMatrix( colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
e.Graphics.DrawImage(Image, 10, 10, width, height);
e.Graphics.DrawImage( Image, new Rectangle(150, 10, width, height), 0, 0, width, height, GraphicsUnit.Pixel, imageAttributes);
A ilustração a seguir mostra a imagem original à esquerda e imagem dimensionada à direita.
A tabela a seguir lista os vetores de cor para as quatro barras antes e após o dimensionamento azul.Observe que o componente azul na barra de cores quarto caiu de 0,8 para 0,6.Isso ocorre porque GDI+ retém apenas a parte fracionária do resultado.Por exemplo, (2)(0. = 1,6, e a parte fracionária de 1.6 é 0,6.Reter somente a parte fracionária garante que o resultado é sempre no intervalo [0, 1].
Dimensionamento de várias cores
O exemplo seguinte constrói uma Image o objeto do arquivo ColorBars2.bmp.Em seguida, o código dimensiona os componentes vermelhos, verdes e azuis de cada pixel na imagem.Os componentes vermelhos são dimensionados 25 por cento, os componentes em verdes são dimensionados 35 por cento e os componentes em azuis são dimensionados 50 por cento.
Image Image = new Bitmap("ColorBars.bmp"); ImageAttributes imageAttributes = new ImageAttributes(); int width = Image.Width; int height = Image.Height;
float[][] colorMatrixElements = { new float[] {.75F, 0, 0, 0, 0}, new float[] {0, .65F, 0, 0, 0}, new float[] {0, 0, .5F, 0, 0}, new float[] {0, 0, 0, 1F, 0}, new float[] {0, 0, 0, 0, 1F}};
ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);
imageAttributes.SetColorMatrix( colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
e.Graphics.DrawImage(Image, 10, 10, width, height);
e.Graphics.DrawImage( Image, new Rectangle(150, 10, width, height), 0, 0, width, height, GraphicsUnit.Pixel, imageAttributes);
A ilustração a seguir mostra a imagem original à esquerda e imagem dimensionada à direita.
A tabela a seguir lista os vetores de cor para as quatro barras antes e após o dimensionamento vermelho, verde e azul.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 17:13 |
Prezados,
Continuando o assunto sobre Matrizes, um dia vocês vão usar:
Como girar cores Rotação em um espaço de cores four-dimensional é difícil visualizar.Podemos pode tornar mais fácil visualizar a rotação concordando em manter um dos componentes de cor fixos.Suponha que nós concordamos em manter o componente alfa fixado em 1 (totalmente opaco).Em seguida, podemos pode visualizar um espaço de cores tridimensional com eixos de vermelhos, verdes e azuis, conforme mostrado na ilustração a seguir.
Uma cor pode ser considerada como um ponto no espaço 3D.Por exemplo, o ponto no espaço (1, 0, 0) representa a cor vermelha e o ponto (0, 1, 0) no espaço representa a cor verde.
A ilustração a seguir mostra o que significa girar a cor (1, 0, 0) por meio de um ângulo de 60 graus no plano vermelho-verde.Rotação em paralelo ao plano de vermelho-verde plano pode ser considerada como rotação sobre o eixo azul.
A ilustração a seguir mostra como inicializar uma matriz de cores para realizar rotações sobre cada um dos três eixos de coordenadas (vermelho, verde, azul).
O exemplo a seguir usa uma imagem que é uma cor (1, 0, 0,6) e aplica uma rotação de 60 graus sobre o eixo azul.O ângulo da rotação é varrido para fora em um plano que é paralelo ao plano de vermelho-verde.
A ilustração a seguir mostra a imagem original à esquerda e a imagem girada de cor à direita.
Girar cores
A ilustração a seguir mostra uma visualização da rotação cor realizada no código a seguir.
PRIVATE void RotateColors(PaintEventArgs e) { Bitmap Image = new Bitmap("RotationInput.bmp"); ImageAttributes imageAttributes = new ImageAttributes(); int width = Image.Width; int height = Image.Height; float degrees = 60f; double r = degrees * System.Math.PI / 180;
float[][] colorMatrixElements = { new float[] {(float)System.Math.Cos(r), (float)System.Math.Sin(r), 0, 0, 0}, new float[] {(float)-System.Math.Sin(r), (float)-System.Math.Cos(r), 0, 0, 0}, new float[] {0, 0, 2, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1}};
ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);
imageAttributes.SetColorMatrix( colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
e.Graphics.DrawImage(Image, 10, 10, width, height);
e.Graphics.DrawImage( Image, new Rectangle(150, 10, width, height), 0, 0, width, height, GraphicsUnit.Pixel, imageAttributes);
}
Compilando o código
O exemplo anterior é projetado para uso com o Windows Forms e requer PaintEventArgse, que é um parâmetro da Paint manipulador de eventos.Substitua RotationInput.bmp com um nome de arquivo de imagem e um caminho válido no sistema.
Como distorcer cores? A distorção aumenta ou diminui um componente de cor em uma quantidade proporcional para outro componente de cor.Por exemplo, considere a transformação onde o componente vermelho é aumentado pela metade o valor do componente azul.Em transformação, a cor (0.2, 0,5, 1) se tornaria (0,7 0,5, 1).O novo componente vermelho é 0,2 + (1/2)(1) = 0,7.
O exemplo seguinte constrói uma Image o objeto do arquivo ColorBars4.bmp.Em seguida, o código aplica a transformação de distorção descrita no parágrafo anterior para cada pixel na imagem.
A ilustração a seguir mostra a imagem original à esquerda e a imagem distorcida à direita.
A tabela a seguir lista os vetores de cor para as quatro barras antes e após a transformação de distorção.
Image Image = new Bitmap("ColorBars.bmp"); ImageAttributes ImageAttributes = Novas ImageAttributes (); int width = Image.Width; int height = Image.Height;
flutuar [] [] = {colorMatrixElements novo flutuador [] {1, 0, 0, 0, 0}, nova flutuador [] {0, 1, 0, 0, 0}, nova flutuador [] {0.5f, 0, 1, 0, 0}, nova flutuador [] {0, 0, 0, 1, 0}, nova flutuador [] {0, 0, 0, 0, 1}};
ColorMatrix ColorMatrix = Novas ColorMatrix (colorMatrixElements);
imageAttributes.SetColorMatrix ( ColorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
e.Graphics.DrawImage (imagem, 10, 10, largura, altura);
e.Graphics.DrawImage( imagem, nova Retângulo (150, 10, largura, altura), 0, 0, largura, de altura, GraphicsUnit.Pixel, ImageAttributes);
Compilando o código
O exemplo mostrado foi desenvolvido para Windows Forms, e precisa de um PaintEventArgs e, que é um parâmetro do evento Paint.Substitua ColorBars.bmp com um nome de imagem e um caminho válido no sistema.
Segue aqui links complementares para os seus estudos.
https://msdn.microsoft.com/pt-br/library/system.drawing.imaging.colormatrix%28v=vs.110%29.aspx
https://msdn.microsoft.com/pt-br/library/system.drawing.imaging.imageattributes%28v=vs.110%29.aspx
https://msdn.microsoft.com/pt-br/library/4b4dc1kz%28v=vs.110%29.aspx…
https://msdn.microsoft.com/pt-br/library/system.drawing.imaging.colormatrix%28v=vs.110%29.aspx
https://msdn.microsoft.com/pt-br/library/system.drawing.imaging.colormap%28v=vs.110%29.aspx
https://msdn.microsoft.com/pt-br/library/3ke1f63h%28v=vs.110%29.aspx
http://ithoughthecamewithyou.com/post/fastest-image-merge-%28alpha-blend%29-in-gdi2b
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 17:24 |
PathGradientBrush
PathGradientBrush est une Classe hérite de Brush FIN
Procedure Constructeur(path = Null, wrapMode est un entier = WrapModeClamp)
nPtr est un entier système pclPath est un GraphicsPath dynamique SI PAS MesParamètres[1]..Défaut ALORS SI TypeVar(path) = wlInstance _ET_ path..Classe = "GraphicsPath" ALORS pclPath <- path GdipCreatePathGradientFromPath(pclPath.Pointer, &nPtr) SINON SI TypeVar(path) = wlTableau ALORS SI TypeVar(path[1].X) = wlRéel_4 ALORS GdipCreatePathGradient(&path, TableauOccurrence(path), wrapMode, &nPtr) SINON GdipCreatePathGradientI(&path, TableauOccurrence(path), wrapMode, &nPtr) FIN FIN FIN Brush.Constructeur(nPtr)
Procedure Destructeur()
Procedure Blend()
stBlend est un Blend nCount est un entier GdipGetPathGradientBlendCount(Pointer, &nCount) stBlend.Factors = allouer un tableau de (nCount) réels sur 4 stBlend.Positions = allouer un tableau de (nCount) réels sur 4 GdipGetPathGradientBlend(Pointer, &stBlend.Factors, &stBlend.Positions, nCount) RENVOYER stBlend
Procedure Blend(stValeur est un Blend)
GdipSetPathGradientBlend(Pointer, &stValeur.Factors, &stValeur.Positions, stValeur.Positions..Occurrence)
Procedure CenterColor()
nColor est un entier pclColor est un Color dynamique = allouer un Color GdipGetPathGradientCenterColor(Pointer, &nColor) pclColor.Value = nColor
RENVOYER pclColor
Procedure CenterColor(pclValeur est un Color dynamique)
GdipSetPathGradientCenterColor(Pointer, pclValeur.Value)
Procedure CenterPoint()
stPoint est un POINT GdipGetPathGradientCenterPointI(Pointer, &stPoint) RENVOYER stPoint
Procedure CenterPoint(stValeur est un POINT)
GdipSetPathGradientCenterPointI(Pointer, &stValeur)
Procedure CenterPointF(stValeur est un POINTF)
GdipSetPathGradientCenterPoint(Pointer, &stValeur)
Procedure FocusScales()
xScale est un réel sur 4 yScale est un réel sur 4 stFocus est un POINTF GdipGetPathGradientFocusScales(Pointer, &xScale, &yScale) stFocus = [xScale, yScale] RENVOYER stFocus
Procedure FocusScales(stValeur est un POINTF) GdipSetPathGradientFocusScales(Pointer, stValeur.x, stValeur.y)
Procedure InterpolationColors()
tabARGB est un tableau d'entiers stInterpol est un ColorBlend nCount est un entier GdipGetPathGradientPresetBlendCount(Pointer, &nCount) tabARGB = allouer un tableau de (nCount) entiers stInterpol.Colors = allouer un tableau de (nCount) Color dynamique stInterpol.Positions = allouer un tableau de (nCount) réels sur 4 GdipGetPathGradientPresetBlend(Pointer, &tabARGB, &stInterpol.Positions, nCount) POUR i = 1 _A_ nCount stInterpol.Colors[i] = allouer un Color(tabARGB[i]) FIN
RENVOYER stInterpol
Procedure InterpolationColors(stValeur est un ColorBlend)
tabARGB est un tableau d'entiers POUR CHAQUE pclColor DE stValeur.Colors Ajoute(tabARGB, pclColor.Value) FIN
GdipSetPathGradientPresetBlend(Pointer, &tabARGB, &stValeur.Positions, stValeur.Positions..Occurrence)
Procedure Rectangle()
stRect est un RECT GdipGetPathGradientRectI(Pointer, &stRect)
RENVOYER stRect
Procedure PRIVÉE Rectangle(v <utile>)
Procedure RectangleF()
stRect est un RECTF GdipGetPathGradientRect(Pointer, &stRect)
RENVOYER stRect
Procedure PRIVÉE RectangleF(v <utile>)
Procedure SurroundColors()
tabARGB est un tableau d'entiers tabColors est un tableau de Color dynamique nCount est un entier GdipGetPathGradientSurroundColorCount(Pointer, &nCount) tabARGB = allouer un tableau de (nCount) entiers GdipGetPathGradientSurroundColorsWithCount(Pointer, &tabARGB, &nCount) tabColors = allouer un tableau de (nCount) Color dynamique POUR i = 1 _A_ nCount tabColors[i] = allouer un Color(tabARGB[i]) FIN
RENVOYER tabColors
Procedure SurroundColors(tabValeur est un tableau de Color dynamique)
tabARGB est un tableau d'entiers nCount est un entier = tabValeur..Occurrence POUR CHAQUE pclColor DE tabValeur Ajoute(tabARGB, pclColor.Value) FIN
GdipSetPathGradientSurroundColorsWithCount(Pointer, &tabARGB, &nCount)
Procedure Transform()
nPtr est un entier système pclObjet est un Matrix dynamique = allouer un Matrix GdipGetPathGradientTransform(Pointer, &nPtr) pclObjet.Pointer = nPtr
RENVOYER pclObjet
Procedure Transform(pclValeur est un Matrix dynamique)
GdipSetPathGradientTransform(Pointer, pclValeur.Pointer)
Procedure WrapMode()
nWrap est un entier GdipGetPathGradientWrapMode(Pointer, &nWrap)
RENVOYER nWrap
Procedure WrapMode(nValeur est un entier)
GdipSetPathGradientWrapMode(Pointer, nValeur)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un PathGradientBrush dynamique = allouer un PathGradientBrush GdipCloneBrush(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure MultiplyTransform(matrix est un Matrix dynamique, order est un entier = MatrixOrderPrepend)
GdipMultiplyPathGradientTransform(Pointer, matrix.Pointer, order)
Procedure ResetTransform()
GdipResetPathGradientTransform(Pointer)
Procedure RotateTransform(angle est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipRotatePathGradientTransform(Pointer, angle, order)
Procedure ScaleTransform(sx est un réel sur 4, sy est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipScalePathGradientTransform(Pointer, sx, sy, order)
Procedure SetBlendTriangularShape(focus est un réel sur 4, scale est un réel sur 4 = 1.0)
GdipSetPathGradientLinearBlend(Pointer, focus, scale)
Procedure SetSigmaBellShape(focus est un réel sur 4, scale est un réel sur 4 = 1.0)
GdipSetPathGradientSigmaBlend(Pointer, focus, scale)
Procedure TranslateTransform(dx est un réel sur 4, dy est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipTranslatePathGradientTransform(Pointer, dx, dy, order)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 17:31 |
Exemplo de Gradiente:
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 21:28 |
Pen Class
Método define o estilo de traço para este Pen objeto.
O comprimento dos traços de uma linha tracejada é dependente do estilo de traço e a largura da caneta objecto. O comprimento do espaço que separa dois traços de uma linha a tracejado é igual à largura da caneta objecto. Exemplos
O exemplo a seguir cria um Pen objeto, define o estilo de traço, e desenha uma linha. O código, em seguida, redefine o estilo de traço, desenha uma segunda linha, redefine estilo pitada de novo, e chama uma terceira linha.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms534485%28v=vs.85%29.aspx
https://msdn.microsoft.com/en-us/library/1z5bhdx7%28v=vs.90%29.aspx
http://www.openwinforms.com/line_pattern_in_gdi_plus.html
Example_SetDashStyle VOID (HDC HDC) { Gráficos Gráficos (HDC);
Pen caneta (Color (255, 0, 0, 255), 15);
pen.SetDashStyle (DashStyleDash); graphics.DrawLine (& caneta, 0, 50, 400, 150);
pen.SetDashStyle (DashStyleDot); graphics.DrawLine (e caneta, 0, 80, 400, 180);
pen.SetDashStyle (DashStyleDashDot); graphics.DrawLine (e caneta, 0, 110, 400, 210); }
Classe Pen Wx
Pen est une Classe hérite de GDIPObjet FIN
Procedure Constructeur(brush_color est un GDIPObjet dynamique = Null, width est un réel sur 4 = 1.0, unit est un entier = UnitWorld)
nPtr est un entier système pclColor est un Color dynamique SI PAS MesParamètres[1]..Défaut ALORS SI brush_color..Classe = "Color" ALORS pclColor <- brush_color GdipCreatePen1(pclColor.Value, width, unit, &nPtr) SINON SI brush_color..Classe = "Brush" ALORS GdipCreatePen2(brush_color.Pointer, width, unit, &nPtr) FIN FIN GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure Alignment()
nAlign est un entier GdipGetPenMode(Pointer, &nAlign)
RENVOYER nAlign
Procedure Alignment(nValeur est un entier)
GdipSetPenMode(Pointer, nValeur)
Procedure Brush()
nPtr est un entier système pclObjet est un Brush dynamique = allouer un Brush GdipGetPenBrushFill(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure Brush(pclBrush est un Brush dynamique)
GdipSetPenBrushFill(Pointer, (pclBrush = Null ? Null SINON pclBrush.Pointer))
Procedure Color()
nColor est un entier pclColor est un Color dynamique = allouer un Color GdipGetPenColor(Pointer, &nColor) pclColor.Value = nColor
RENVOYER pclColor
Procedure Color(pclColor est un Color dynamique)
GdipSetPenColor(Pointer, pclColor.Value)
Procedure CompoundArray()
nCount est un entier tabCmp est un tableau de réels sur 4 GdipGetPenCompoundCount(Pointer, &nCount) tabCmp = allouer un tableau de (nCount) réels sur 4 GdipGetPenCompoundArray(Pointer, &tabCmp, nCount)
RENVOYER tabCmp
Procedure CompoundArray(tabValeur est un tableau de réels sur 4) GdipSetPenCompoundArray(Pointer, &tabValeur, tabValeur..Occurrence)
Procedure CustomEndCap()
nPtr est un entier système pclObjet est un CustomLineCap dynamique = allouer un CustomLineCap
GdipGetPenCustomEndCap(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure CustomEndCap(pclCap est un CustomLineCap dynamique)
GdipSetPenCustomEndCap(Pointer, (pclCap = Null ? Null SINON pclCap.Pointer))
Procedure CustomStartCap()
nPtr est un entier système pclObjet est un CustomLineCap dynamique = allouer un CustomLineCap
GdipGetPenCustomStartCap(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure CustomStartCap(pclCap est un CustomLineCap dynamique)
GdipSetPenCustomStartCap(Pointer, (pclCap = Null ? Null SINON pclCap.Pointer))
Procedure DashCap()
nDash est un entier GdipGetPenDashCap197819(Pointer, &nDash) RENVOYER nDash
Procedure DashCap(nValeur est un entier)
GdipSetPenDashCap197819(Pointer, nValeur)
Procedure DashOffset()
rDash est un réel sur 4 GdipGetPenDashOffset(Pointer, &rDash) RENVOYER rDash
Procedure DashOffset(rValeur est un réel sur 4)
GdipSetPenDashOffset(Pointer, rValeur)
Procedure DashPattern()
nCount est un entier tabPat est un tableau de réels sur 4 GdipGetPenDashCount(Pointer, &nCount) tabPat = allouer un tableau de (nCount) réels sur 4 GdipGetPenDashArray(Pointer, &tabPat, nCount)
RENVOYER tabPat
Procedure DashPattern(tabValeur est un tableau de réel sur 4)
GdipSetPenDashArray(Pointer, &tabValeur, tabValeur..Occurrence)
Procedure DashStyle()
nStyle est un entier GdipGetPenDashStyle(Pointer, &nStyle) RENVOYER nStyle
Procedure DashStyle(nValeur est un entier)
GdipSetPenDashStyle(Pointer, nValeur)
Procedure StartCap()
nCap est un entier GdipGetPenStartCap(Pointer, &nCap)
RENVOYER nCap
Procedure StartCap(nValeur est un entier)
GdipSetPenStartCap(Pointer, nValeur)
Procedure EndCap()
nCap est un entier GdipGetPenEndCap(Pointer, &nCap) RENVOYER nCap
Procedure EndCap(nValeur est un entier)
GdipSetPenEndCap(Pointer, nValeur)
Procedure LineJoin()
nJoin est un entier GdipGetPenLineJoin(Pointer, &nJoin)
RENVOYER nJoin
Procedure LineJoin(nValeur est un entier)
GdipSetPenLineJoin(Pointer, nValeur)
Procedure MiterLimit()
rLimit est un réel sur 4 GdipGetPenMiterLimit(Pointer, &rLimit)
RENVOYER rLimit
Procedure MiterLimit(rValeur est un réel sur 4) GdipSetPenMiterLimit(Pointer, rValeur)
Procedure PenType()
nType est un entier GdipGetPenFillType(Pointer, &nType)
RENVOYER nType
Procedure PRIVÉE PenType(v <utile>)
Procedure Transform()
nPtr est un entier système pclObjet est un Matrix dynamique = allouer un Matrix GdipGetPenTransform(Pointer, &nPtr)
pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure Transform(pclValeur est un Matrix dynamique)
GdipSetPenTransform(Pointer, (pclValeur = Null ? Null SINON pclValeur.Pointer))
Procedure Width()
rWidth est un réel sur 4 GdipGetPenWidth(Pointer, &rWidth)
RENVOYER rWidth
Procedure Width(rValeur est un réel sur 4)
GdipSetPenWidth(Pointer, rValeur)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un Pen dynamique = allouer un Pen GdipClonePen(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure VIRTUELLE Dispose()
GdipDeletePen(Pointer)
GDIPObjet.Dispose()
Procedure MultiplyTransform(matrix est un Matrix dynamique, order est un entier = MatrixOrderPrepend)
GdipMultiplyPenTransform(Pointer, matrix.Pointer, order)
Procedure ResetTransform()
GdipResetPenTransform(Pointer)
Procedure RotateTransform(angle est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipRotatePenTransform(Pointer, angle, order)
Procedure ScaleTransform(sx est un réel sur 4, sy est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipScalePenTransform(Pointer, sx, sy, order)
Procedure SetLineCap(startCap est un entier, endCap est un entier, dashCap est un entier)
GdipSetPenLineCap197819(Pointer, startCap, endCap, dashCap)
Procedure TranslateTransform(dx est un réel sur 4, dy est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipTranslatePenTransform(Pointer, dx, dy, order)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 21:33 |
PrivateFontCollection
PrivateFontCollection est une Classe hérite de FontCollection FIN
Procedure Constructeur()
nPtr est un entier système
GdipNewPrivateFontCollection(&nPtr)
FontCollection.Constructeur(nPtr)
Procedure Destructeur()
Procedure VIRTUELLE Dispose()
GdipDeletePrivateFontCollection(Pointer)
GDIPObjet.Dispose()
Procedure AddFontFile(filename est une chaîne)
u est une chaîne UNICODE = filename
GdipPrivateAddFontFile(Pointer, &u)
Procedure AddMemoryFont(memory est un entier système, Length est un entier)
GdipPrivateAddMemoryFont(Pointer, memory, Length)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 18 mars 2016 - 23:45 |
Region Class
A Região classe descreve uma área da superfície do mostrador. A área pode ser de qualquer forma. Em outras palavras, a fronteira da área pode ser uma combinação de linhas rectas e curvas. As regiões também podem ser criados a partir do interior de retângulos, caminhos, ou uma combinação destes. Regiões são usados em recorte e bateu-testando operações.
Uma região é uma porção da área de exibição de um dispositivo de saída. As regiões podem ser simples (um único retângulo) ou complexo (uma combinação de polígonos e curvas fechadas). A ilustração a seguir mostra duas regiões: uma construída a partir de um retângulo, e outro construído a partir de um caminho.
Regiões são muitas vezes utilizados para recorte e bateu testes. Clipping envolve restringindo desenho para uma determinada região da área de exibição, geralmente a parte que precisa ser atualizado. testes bateu envolve a verificação para determinar se o cursor estiver em uma determinada região da tela quando um botão do mouse é pressionado.
Você pode construir uma região de um retângulo ou um caminho. Você também pode criar regiões complexas, combinando regiões existentes. A Região classe fornece os seguintes métodos para combinar regiões: Intersect , União , Xor , Excluir , e Complementar .
A intersecção das duas regiões é o conjunto de todos os pontos pertencentes a ambas as regiões. A união é o conjunto de todos os pontos pertencentes a uma ou a outra, ou ambas as regiões. O complemento de uma região é o conjunto de todos os pontos que não estão na região. A ilustração a seguir mostra a intersecção e união das duas regiões mostradas na ilustração anterior.
O Xor método, aplicado a um par de regiões, produz uma região que contém todos os pontos pertencentes a uma região ou o outro, mas não ambos. O Excluir método, aplicado a um par de regiões, produz uma região que contém todos os pontos na primeira região que não estão na segunda região. A ilustração abaixo mostra as regiões que resultam da aplicação do Xor e Excluir métodos para as duas regiões mostrados no início deste tópico.
Para preencher uma região, você precisa de uma Gráficos objeto, uma escova objeto, e uma Região objeto. O Gráficos objeto fornece o FillRegion método e as Escova atributos armazenamentos de objetos do preenchimento, como cor ou padrão. O exemplo a seguir preenche uma região com uma cor sólida.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms534501%28v=vs.85%29.aspx
https://msdn.microsoft.com/en-us/library/4t53hf8d%28v=vs.110%29.aspx
http://forums.asp.net/t/1231528.aspx…+
Region est une Classe hérite de GDIPObjet FIN
Procedure Constructeur(in_ = Null)
nPtr est un entier système pclObj est un GDIPObjet dynamique SI MesParamètres..NbReçus = 0 OU in_ = Null ALORS GdipCreateRegion(&nPtr) SINON SI TypeVar(in_) = wlInstance ALORS pclObj <- in_ GdipCreateRegionPath(pclObj.Pointer, &nPtr) SINON SI TypeVar(in_) = wlStructure ALORS SI TypeVar(in_.X) = wlRéel_4 ALORS GdipCreateRegionRect(&in_, &nPtr) SINON GdipCreateRegionRectI(&in_, &nPtr) FIN SINON SI TypeVar(in_) = wlTableau GdipCreateRegionRgnData(&in_, TableauOccurrence(in_), &nPtr) SINON SI TypeVar(in_) DANS (wlEntier, wlEntier_4, wlEntier_8, wlEntierSansSigne_4, wlEntierSansSigne_8) GdipCreateRegionHrgn((in_), &nPtr) FIN FIN
GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure RgnData()
tabData est un tableau d'entiers sans signe sur 1 nCount est un entier nFilled est un entier GdipGetRegionDataSize(Pointer, &nCount) Dimension(tabData, nCount) GdipGetRegionData(Pointer, &tabData, nCount, &nFilled) RENVOYER tabData
Procedure PRIVÉE RgnData(v <utile>)
Procedure Union(in_)
Combine(in_, CombineModeUnion)
Procedure Intersect(in_)
Combine(in_, CombineModeIntersect)
Procedure PROTÉGÉE Combine(in_, combineMode est un entier)
pclObj est un GDIPObjet dynamique
SI TypeVar(in_) = wlInstance ALORS pclObj <- in_ SELON pclObj..Classe CAS "Region" GdipCombineRegionRegion(Pointer, pclObj.Pointer, combineMode) CAS "GraphicsPath" GdipCombineRegionPath(Pointer, pclObj.Pointer, combineMode) FIN SINON SI TypeVar(in_) = wlStructure ALORS SI TypeVar(in_.X) = wlRéel_4 ALORS GdipCombineRegionRect(Pointer, &in_, combineMode) SINON GdipCombineRegionRectI(Pointer, &in_, combineMode) FIN FIN
Procedure Complement(in_)
Combine(in_, CombineModeComplement)
Procedure Exclude(in_)
Combine(in_, CombineModeExclude)
Procedure Xor(in_)
Combine(in_, CombineModeXor)
Procedure Replace(in_)
Combine(in_, CombineModeReplace)
Procedure Translate(dx, dy)
SI TypeVar(dx) = wlRéel_4 ALORS GdipTranslateRegion(Pointer, dx, dy) SINON GdipTranslateRegionI(Pointer, dx, dy) FIN
Procedure IsVisiblePoint(x, y, g est un Graphics dynamique = Null)
bVal est un booléen
SI TypeVar(x) = wlRéel_4 ALORS GdipIsVisibleRegionPoint(Pointer, x, y, (g = Null ? Null SINON g.Pointer), &bVal) SINON GdipIsVisibleRegionPointI(Pointer, x, y, (g = Null ? Null SINON g.Pointer), &bVal) FIN
Procedure IsVisibleRect(x, y, width, height, g est un Graphics dynamique = Null)
bVal est un booléen
SI TypeVar(x) = wlRéel_4 ALORS GdipIsVisibleRegionRect(Pointer, x, y, width, height, (g = Null ? Null SINON g.Pointer), &bVal) SINON GdipIsVisibleRegionRectI(Pointer, x, y, width, height, (g = Null ? Null SINON g.Pointer), &bVal) FIN
Procedure IsEmpty(g est un Graphics dynamique)
bval est un booléen GdipIsEmptyRegion(Pointer, g.Pointer, &bval) RENVOYER bval
Procedure IsInfinite(g est un Graphics dynamique)
bval est un booléen GdipIsInfiniteRegion(Pointer, g.Pointer, &bval) RENVOYER bval
Procedure MakeEmpty()
GdipSetEmpty(Pointer)
Procedure MakeInfinite()
GdipSetInfinite(Pointer)
Procedure Equals(r est un Region dynamique, g est un Graphics dynamique)
bval est un booléen
GdipIsEqualRegion(Pointer, r.Pointer, g.Pointer, &bval) RENVOYER bval
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un Region dynamique = allouer un Region GdipCloneRegion(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure VIRTUELLE Dispose()
GdipDeleteRegion(Pointer)
GDIPObjet.Dispose()
Procedure Transform(m est un Matrix dynamique)
GdipTransformRegion(Pointer, m.Pointer)
Procedure GetHrgn(g est un Graphics dynamique)
nRgn est un entier système
GdipGetRegionHRgn(Pointer, g.Pointer, &nRgn) RENVOYER nRgn
Procedure GetBounds(g est un Graphics dynamique)
stRect est un RECT GdipGetRegionBoundsI(Pointer, g.Pointer, &stRect) RENVOYER stRect
Procedure GetBoundsF(g est un Graphics dynamique)
stRect est un RECTF GdipGetRegionBounds(Pointer, g.Pointer, &stRect) RENVOYER stRect
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 19 mars 2016 - 00:13 |
SolidBrush CLASS
SolidBrush est une Classe hérite de Brush FIN
Procedure Constructeur(Color est un Color dynamique = Null)
nPtr est un entier système GdipCreateSolidFill((Color = Null ? 0 SINON Color.Value), &nPtr) Brush.Constructeur(nPtr)
Procedure Destructeur()
Procedure Color()
nColor est un entier pclColor est un Color dynamique = allouer un Color
GdipGetSolidFillColor(Pointer, &nColor) pclColor.Value = nColor RENVOYER pclColor
Procedure Color(pclValeur est un Color dynamique)
GdipSetSolidFillColor(Pointer, pclValeur.Value)
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un SolidBrush dynamique = allouer un SolidBrush GdipCloneBrush(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 19 mars 2016 - 00:20 |
StringFormat CLASS
https://msdn.microsoft.com/en-us/library/windows/desktop/ms534733%28v=vs.85%29.aspx
StringFormat est une Classe hérite de GDIPObjet
PRIVÉ m_nLanguage est un entier sur 2
FIN
Procedure Constructeur(options est un entier = 0, language est un entier = LANG_NEUTRAL)
nPtr est un entier système GdipCreateStringFormat(options, language, &nPtr) m_nLanguage = language GDIPObjet.Constructeur(nPtr)
Procedure Destructeur()
Procedure Alignment()
nAlign est un entier GdipGetStringFormatAlign(Pointer, &nAlign)
RENVOYER nAlign
Procedure Alignment(nValeur est un entier)
GdipSetStringFormatAlign(Pointer, nValeur)
Procedure LineAlignment()
nAlign est un entier GdipGetStringFormatLineAlign(Pointer, &nAlign)
RENVOYER nAlign
Procedure LineAlignment(nValeur est un entier)
GdipSetStringFormatLineAlign(Pointer, nValeur)
Procedure FormatFlags()
nFlags est un entier GdipGetStringFormatFlags(Pointer, &nFlags)
RENVOYER nFlags
Procedure FormatFlags(nValeur est un entier)
GdipSetStringFormatFlags(Pointer, nValeur)
Procedure HotkeyPrefix()
nPrefix est un entier GdipGetStringFormatHotkeyPrefix(Pointer, &nPrefix)
RENVOYER nPrefix
Procedure HotkeyPrefix(nValeur est un entier)
GdipSetStringFormatHotkeyPrefix(Pointer, nValeur)
Procedure Trimming()
nTrim est un entier GdipGetStringFormatTrimming(Pointer, &nTrim)
RENVOYER nTrim
Procedure Trimming(nValeur est un entier)
GdipSetStringFormatTrimming(Pointer, nValeur)
Procedure DigitSubstitutionMethod()
nSub est un entier GdipGetStringFormatDigitSubstitution(Pointer, &m_nLanguage, &nSub) RENVOYER nSub
Procedure PRIVÉE DigitSubstitutionMethod(v <utile>)
Procedure VIRTUELLE Dispose()
GdipDeleteStringFormat(Pointer)
GDIPObjet.Dispose()
Procedure VIRTUELLE Clone()
nPtr est un entier système pclObjet est un StringFormat dynamique = allouer un StringFormat GdipCloneStringFormat(Pointer, &nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE GenericDefault()
nPtr est un entier système pclObjet est un StringFormat dynamique = allouer un StringFormat GdipStringFormatGetGenericDefault(&nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure GLOBALE GenericTypographic()
nPtr est un entier système pclObjet est un StringFormat dynamique = allouer un StringFormat GdipStringFormatGetGenericTypographic(&nPtr) pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure SetMeasurableCharacterRanges(ranges est un tableau de CharacterRange)
GdipSetStringFormatMeasurableCharacterRanges(Pointer, ranges..Occurrence, &ranges)
Procedure GetMeasurableCharacterRangeCount()
nCount est un entier GdipGetStringFormatMeasurableCharacterRangeCount(Pointer, &nCount) RENVOYER nCount
Procedure SetTabStops(firstTabOffset est un réel sur 4, tabStops est un tableau de réels sur 4)
GdipSetStringFormatTabStops(Pointer, firstTabOffset, tabStops..Occurrence, &tabStops)
Procedure SetDigitSubstitution(language est un entier, substitute est un entier)
GdipSetStringFormatDigitSubstitution(Pointer, language, substitute)
Procedure GetTabStops(firstTabOffset est un réel sur 4)
nCount est un entier tabStops est un tableau de réels sur 4 firstTabOffset = 0 GdipGetStringFormatTabStopCount(Pointer, &nCount) tabStops = allouer un tableau de (nCount) réels sur 4 GdipGetStringFormatTabStops(Pointer, nCount, &firstTabOffset, &tabStops) RENVOYER tabStops
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 19 mars 2016 - 00:24 |
TextureBrush
TextureBrush est une Classe hérite de Brush
FIN
Procedure Constructeur(Image est un Image dynamique = Null, dstRect = Null, wrapMode est un entier = WrapModeTile, imgAtt est un ImageAttributes dynamique = Null)
nPtr est un entier système
SI MesParamètres[2]..Défaut ALORS GdipCreateTexture(Image.Pointer, wrapMode, &nPtr) SINON SI TypeVar(dstRect.X) = wlRéel_4 ALORS SI imgAtt = Null ALORS GdipCreateTexture2(Image.Pointer, wrapMode, dstRect.X, dstRect.Y, dstRect.Width, dstRect.height, &nPtr) SINON GdipCreateTextureIA(Image.Pointer, imgAtt.Pointer, dstRect.X, dstRect.Y, dstRect.Width, dstRect.height, &nPtr) FIN SINON SI imgAtt = Null ALORS GdipCreateTexture2I(Image.Pointer, wrapMode, dstRect.X, dstRect.Y, dstRect.Width, dstRect.height, &nPtr) SINON GdipCreateTextureIAI(Image.Pointer, imgAtt.Pointer, dstRect.X, dstRect.Y, dstRect.Width, dstRect.height, &nPtr) FIN FIN FIN
Brush.Constructeur(nPtr)
Procedure Destructeur()
Procedure Image()
nPtr est un entier système pclImage est un Bitmap dynamique = allouer un Bitmap GdipGetTextureImage(Pointer, &nPtr)
pclImage.Pointer = nPtr
RENVOYER pclImage
Procedure PRIVÉE Image(v <utile>)
Procedure Transform()
nPtr est un entier système pclObjet est un Matrix dynamique = allouer un Matrix GdipGetTextureTransform(Pointer, &nPtr)
pclObjet.Pointer = nPtr RENVOYER pclObjet
Procedure Transform(pclValeur est un Matrix dynamique)
GdipSetTextureTransform(Pointer, pclValeur.Pointer)
Procedure WrapMode()
nWrap est un entier GdipGetTextureWrapMode(Pointer, &nWrap)
RENVOYER nWrap
Procedure WrapMode(nValeur est un entier)
GdipSetTextureWrapMode(Pointer, nValeur)
Procedure MultiplyTransform(matrix est un Matrix dynamique, order est un entier = MatrixOrderPrepend)
GdipMultiplyTextureTransform(Pointer, matrix.Pointer, order)
Procedure ResetTransform()
GdipResetTextureTransform(Pointer)
Procedure RotateTransform(angle est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipRotateTextureTransform(Pointer, angle, order)
Procedure ScaleTransform(sx est un réel sur 4, sy est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipScaleTextureTransform(Pointer, sx, sy, order)
Procedure TranslateTransform(dx est un réel sur 4, dy est un réel sur 4, order est un entier = MatrixOrderPrepend)
GdipTranslateTextureTransform(Pointer, dx, dy, order)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 19 mars 2016 - 00:26 |
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.blogspot.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 19 mars 2016 - 13:00 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 19 mars 2016 - 13:11 |
| |
| |
| | | |
|
| | |
| |
Posté le 23 novembre 2016 - 13:10 |
De todo esse pessoal que posta dicas e tutoriais sobre os produtos wxdev em português, você é o único que encontrei que não fica apenas no trivial da ferramenta e compartilha conhecimentos mais avançados. Parabéns! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 664 messages Popularité : +175 (223 votes) |
|
Posté le 29 novembre 2016 - 06:26 |
Obrigado pelo incentivo...
Doar o nosso tempo para os outros sem nada esperar em troca não é fácil.
É mais fácil receber criticas do que elegios, muito obrigado pela força.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | | | |
| | |
|