conversion transparent image to sprite not working

Just starting out? Need help? Post your questions and find answers here.
gabriel
Enthusiast
Enthusiast
Posts: 137
Joined: Sat Aug 01, 2009 4:49 pm
Location: Beirut, Lebanon

conversion transparent image to sprite not working

Post by gabriel »

hello:
newbie with sprites, I'm trying to transform a image with transparent fileds to sprite, I didn't succeed

Code: Select all

EnableExplicit
UsePNGImageDecoder()

Define.l Event, WindowID, GadgetID, EventType, EventMenu, dc
Global Font1.l, Font2.l,hdc.l
Define comport.s, i.a, r.u, teta.f, Pen1.l, Pen2.l, Pen3.l

Font1=LoadFont(0, "Arial", 18) 
Font2=LoadFont(2, "OCR A Extended", 18) 

;InitEngine3D()
InitSprite()
InitKeyboard()

If Not OpenPreferences("config.txt")
  MessageRequester("Error","aconfig.txt not found",#PB_MessageRequester_Ok)
  End
EndIf
comport= ReadPreferenceString("COMPORT","comx")

If Not OpenSerialPort(0, comport, 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
  MessageRequester("Error","Can't open Serial Port",#PB_MessageRequester_Ok)
  End
EndIf
SerialPortTimeouts(0,100,100,10,10,100)

OpenWindow(0,400,200,300,300,"MY LAB")
OpenWindowedScreen(WindowID(0), 0, 0, 300, 300, 0, 0, 0)
LoadSprite(0, "device13.png")
DisplaySprite(0, 0, 0)

Repeat
  FlipBuffers()  
       
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
  GadgetID = EventGadget() ; Is it a gadget event?
  EventType = EventType() ; The event type

Until Event = #PB_Event_CloseWindow ; End of the event loop

instead of getting:
Image

I get:
Image

So what's the problem?
Last edited by gabriel on Fri Jun 03, 2011 8:38 pm, edited 1 time in total.
RASHAD
PureBasic Expert
PureBasic Expert
Posts: 4955
Joined: Sun Apr 12, 2009 6:27 am

Re: conversion transparent image to sprite not working

Post by RASHAD »

Hi

Code: Select all

EnableExplicit
UsePNGImageDecoder()

Define.l Event, WindowID, GadgetID, EventType, EventMenu, dc
Global Font1.l, Font2.l,hdc.l
Define comport.s, i.a, r.u, teta.f, Pen1.l, Pen2.l, Pen3.l

Font1=LoadFont(0, "Arial", 18)
Font2=LoadFont(2, "OCR A Extended", 18)

;InitEngine3D()
InitSprite()
InitSprite3D()
InitKeyboard()

; If Not OpenPreferences("config.txt")
;   MessageRequester("Error","aconfig.txt not found",#PB_MessageRequester_Ok)
;   End
; EndIf
; comport= ReadPreferenceString("COMPORT","comx")

; If Not OpenSerialPort(0, comport, 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
;   MessageRequester("Error","Can't open Serial Port",#PB_MessageRequester_Ok)
;   End
; EndIf
; SerialPortTimeouts(0,100,100,10,10,100)

OpenWindow(0,400,200,300,300,"MY LAB")
OpenWindowedScreen(WindowID(0), 0, 0, 300, 300, 0, 0, 0)
ClearScreen($FFFFFF)
LoadSprite(0, "device13.png",#PB_Sprite_AlphaBlending|#PB_Sprite_Texture)
CreateSprite3D(0, 0)
Start3D()
DisplaySprite3D(0, 0, 0,250)
Stop3D()


Repeat
  FlipBuffers() 
       
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
  GadgetID = EventGadget() ; Is it a gadget event?
  EventType = EventType() ; The event type

Until Event = #PB_Event_CloseWindow ; End of the event loop

Or

Code: Select all

EnableExplicit
UsePNGImageDecoder()

Define.l Event, WindowID, GadgetID, EventType, EventMenu, dc
Global Font1.l, Font2.l,hdc.l
Define comport.s, i.a, r.u, teta.f, Pen1.l, Pen2.l, Pen3.l

Font1=LoadFont(0, "Arial", 18)
Font2=LoadFont(2, "OCR A Extended", 18)

InitSprite()
InitKeyboard()

; If Not OpenPreferences("config.txt")
;   MessageRequester("Error","aconfig.txt not found",#PB_MessageRequester_Ok)
;   End
; EndIf
; comport= ReadPreferenceString("COMPORT","comx")

; If Not OpenSerialPort(0, comport, 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
;   MessageRequester("Error","Can't open Serial Port",#PB_MessageRequester_Ok)
;   End
; EndIf
; SerialPortTimeouts(0,100,100,10,10,100)

OpenWindow(0,400,200,300,300,"MY LAB")
OpenWindowedScreen(WindowID(0), 0, 0, 300, 300, 0, 0, 0)
ClearScreen($FFFFFF)
LoadSprite(0, "device13.png",#PB_Sprite_Texture)
TransparentSpriteColor(0, RGB(84,179,95))
DisplayTransparentSprite(0, 0,0)


Repeat
  FlipBuffers() 
       
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
  GadgetID = EventGadget() ; Is it a gadget event?
  EventType = EventType() ; The event type

Until Event = #PB_Event_CloseWindow ; End of the event loop

Edit : Code modified
Egypt my love
gabriel
Enthusiast
Enthusiast
Posts: 137
Joined: Sat Aug 01, 2009 4:49 pm
Location: Beirut, Lebanon

Re: conversion transparent image to sprite not working

Post by gabriel »

Thank you very much RASHAD :D
gabriel
Enthusiast
Enthusiast
Posts: 137
Joined: Sat Aug 01, 2009 4:49 pm
Location: Beirut, Lebanon

Re: conversion transparent image to sprite not working

Post by gabriel »

Just to make sure:
can I understand that original transparent color in picture is not taken into account in sprites??
To Rashad: only the second method worked with me
RASHAD
PureBasic Expert
PureBasic Expert
Posts: 4955
Joined: Sun Apr 12, 2009 6:27 am

Re: conversion transparent image to sprite not working

Post by RASHAD »

I am using PB 4.51 x86 Win 7 x64
Maybe because of your configurations (check it)

In second method the transparent color is taken into consideration
Egypt my love
Post Reply