Image Survival Guide

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Image Survival Guide

Message par falsam »

Un code que j'ai récupéré sur un site consacré à Purebasic il y a deux ou trois ans. Il me sert quand je rencontre des soucis d'écritures dans des images ou des sprites.

Code : Tout sélectionner

; survival guide 6_3_200 drawing mode
; pb 4.40 - > 5.43
;
Enumeration
  #w_main
  #g_image
  #i_result
EndEnumeration
;
OpenWindow(#w_main,10,10,870,6*130,"Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
AddKeyboardShortcut(#w_main,#PB_Shortcut_Escape,1)
CreateImage(#i_result,870,6*130,32)
;
StartDrawing(ImageOutput(#i_result))
  ;
  ; top half black
  ;
  DrawingMode(#PB_2DDrawing_Default)
  Box(0,0,870,6*130,RGB(0,0,0))
  ;
  ; first section transparent (alhpa 0)
  ;
  DrawingMode(#PB_2DDrawing_AlphaChannel)
  Box(0,0*130,870,3*130,RGBA(0,0,0,0))
  DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
  DrawText(10,1*130-125,"fully transparent black background",RGBA(255,255,255,255))
  ;
  ; second section half solid (alpha 128)
  ;
  DrawingMode(#PB_2DDrawing_AlphaChannel)
  Box(0,1*130,870,130,RGBA(0,0,0,128))
  DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
  DrawText(10,2*130-125,"half transparent black background",RGBA(255,255,255,255))
  ;
  ; third section solid (alpha 255)
  ;
  DrawingMode(#PB_2DDrawing_AlphaChannel)
  Box(0,2*130,870,130,RGBA(0,0,0,255))
  DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
  DrawText(10,3*130-125,"solid black background",RGBA(255,255,255,255))
  ;
  ; bottom half white
  ;
  DrawingMode(#PB_2DDrawing_Default)
  Box(0,3*130,870,3*130,RGB(255,255,255))
  ;
  ; fourth section transparent (alhpa 0)
  ;
  DrawingMode(#PB_2DDrawing_AlphaChannel)
  Box(0,3*130,870,130,RGBA(0,0,0,0))
  DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
  DrawText(10,4*130-125,"fully transparent white background",RGBA(0,0,0,255))
  ;
  ; fifth section half solid (alpha 128)
  ;
  DrawingMode(#PB_2DDrawing_AlphaChannel)
  Box(0,4*130,870,130,RGBA(0,0,0,128))
  DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
  DrawText(10,5*130-125,"half transparent white background",RGBA(0,0,0,255))
  ;
  ; sixth section solid (alpha 255)
  ;
  DrawingMode(#PB_2DDrawing_AlphaChannel)
  Box(0,5*130,870,130,RGBA(0,0,0,255))
  DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
  DrawText(10,6*130-125,"solid white background",RGBA(0,0,0,255))
  ;
  For row = 0 To 5
    ;
    x = 10
    y = 50+row*130
    ;
    DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
    DrawText(x,y-25,"default",RGBA(255,0,0,255))
    DrawingMode(#PB_2DDrawing_Default)
    Box(x,y,40,40,RGBA(255,0,0,255))
    Box(x+10,y+10,40,40,RGBA(255,0,0,128))
    Box(x+20,y+20,40,40,RGBA(255,0,0,128))
    Box(x+30,y+30,40,40,RGBA(255,0,0,0))
    ;
    x = x+130
    DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
    DrawText(x,y-25,"transparent",RGBA(255,0,0,255))
    DrawingMode(#PB_2DDrawing_Transparent)
    Box(x,y,40,40,RGBA(255,0,0,255))
    Box(x+10,y+10,40,40,RGBA(255,0,0,128))
    Box(x+20,y+20,40,40,RGBA(255,0,0,128))
    Box(x+30,y+30,40,40,RGBA(255,0,0,0))
    ;
    x = x+130
    DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
    DrawText(x,y-25,"xor",RGBA(255,0,0,255))
    DrawingMode(#PB_2DDrawing_XOr)
    Box(x,y,40,40,RGBA(255,0,0,255))
    Box(x+10,y+10,40,40,RGBA(255,0,0,128))
    Box(x+20,y+20,40,40,RGBA(255,0,0,128))
    Box(x+30,y+30,40,40,RGBA(255,0,0,0))
    ;
    x = x+130
    DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
    DrawText(x,y-25,"outlined",RGBA(255,0,0,255))
    DrawingMode(#PB_2DDrawing_Outlined)
    Box(x,y,40,40,RGBA(255,0,0,255))
    Box(x+10,y+10,40,40,RGBA(255,0,0,128))
    Box(x+20,y+20,40,40,RGBA(255,0,0,128))
    Box(x+30,y+30,40,40,RGBA(255,0,0,0))
    ;
    x = x+130
    DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
    DrawText(x,y-25,"blend",RGBA(255,0,0,255))
    DrawingMode(#PB_2DDrawing_AlphaBlend)
    Box(x,y,40,40,RGBA(255,0,0,255))
    Box(x+10,y+10,40,40,RGBA(255,0,0,128))
    Box(x+20,y+20,40,40,RGBA(255,0,0,128))
    Box(x+30,y+30,40,40,RGBA(255,0,0,0))
    ;
    x = x+130
    DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
    DrawText(x,y-25,"clip",RGBA(255,0,0,255))
    DrawingMode(#PB_2DDrawing_AlphaClip)
    Box(x,y,40,40,RGBA(255,0,0,255))
    Box(x+10,y+10,40,40,RGBA(255,0,0,128))
    Box(x+20,y+20,40,40,RGBA(255,0,0,128))
    Box(x+30,y+30,40,40,RGBA(255,0,0,0))
    ;
    x = x+130
    DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_Transparent)
    DrawText(x,y-25,"channel",RGBA(255,0,0,255))
    DrawingMode(#PB_2DDrawing_AlphaChannel)
    Box(x,y,40,40,RGBA(255,0,0,255))
    Box(x+10,y+10,40,40,RGBA(255,0,0,128))
    Box(x+20,y+20,40,40,RGBA(255,0,0,128))
    Box(x+30,y+30,40,40,RGBA(255,0,0,0))
    ;
  Next row
StopDrawing()
;
ImageGadget(#g_image,0,0,870,6*130,ImageID(#i_result))
Repeat
  event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow Or event = #PB_Event_Menu
Source quelques part sur ce lien :
http://www.ninelizards.com/purebasic/index.htm#top
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Image Survival Guide

Message par GallyHC »

Bonjour,

Très pratique pour connaitre les combinaisons possibles avec "DrawingMode()". Merci pour le partage.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Image Survival Guide

Message par Zorro »

ça a l'air bien :)
mais sort de mon 768 en Y Image
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Image Survival Guide

Message par Marc56 »

Merci 8)
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Image Survival Guide

Message par Micoute »

Pourtant ce n'est pas très récent, je l'utilisais déjà avec la PB 4.20
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Image Survival Guide

Message par Kwai chang caine »

C'est joli :wink: ....vu que j'y connais rien, quand à son utilité, c'est tout ce que je peux dire :oops:
Ah non..je peux dire aussi

Image

"MERKI !!" 8) :mrgreen:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre