combine images

Just starting out? Need help? Post your questions and find answers here.
daft
User
User
Posts: 25
Joined: Fri Oct 29, 2010 10:32 am

combine images

Post by daft »

I have two generated images and want to combine them into one before saving. How to?
eesau
Enthusiast
Enthusiast
Posts: 589
Joined: Fri Apr 27, 2007 12:38 pm
Location: Finland

Re: combine images

Post by eesau »

Do you want to combine them with transparency or just laid over each other without transparency? Or e.g. side by side?
daft
User
User
Posts: 25
Joined: Fri Oct 29, 2010 10:32 am

Re: combine images

Post by daft »

just side by side
eesau
Enthusiast
Enthusiast
Posts: 589
Joined: Fri Apr 27, 2007 12:38 pm
Location: Finland

Re: combine images

Post by eesau »

Here's a very simple example.

Code: Select all

EnableExplicit

Procedure Max(A, B)

	If A => B
		ProcedureReturn A
	EndIf

	ProcedureReturn B

EndProcedure

Procedure CombineImages(NewImage, LeftImage, RightImage)

	Protected Image = CreateImage(NewImage, ImageWidth(LeftImage) + ImageWidth(RightImage), Max(ImageHeight(LeftImage), ImageHeight(RightImage)))

	If Not Image
		ProcedureReturn #False
	EndIf

	If StartDrawing(ImageOutput(NewImage))
		DrawImage(ImageID(LeftImage), 0, 0)
		DrawImage(ImageID(RightImage), ImageWidth(LeftImage), 0)
		StopDrawing()
	EndIf

	ProcedureReturn Image

EndProcedure

UsePNGImageDecoder()
UseJPEGImageDecoder()

LoadImage(0, #PB_Compiler_Home + "\Examples\Sources\Data\flare.png")
LoadImage(1, #PB_Compiler_Home + "\Examples\Sources\Data\clouds.jpg")
ResizeImage(1, ImageWidth(1) / 2, ImageHeight(1) / 2)
CombineImages(2, 0, 1)

If OpenWindow(0, 0, 0, 800, 700, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	ImageGadget(#PB_Any, 0, 0, 0, 0, ImageID(2))
EndIf

Repeat
	Define Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
daft
User
User
Posts: 25
Joined: Fri Oct 29, 2010 10:32 am

Re: combine images

Post by daft »

thank you
Post Reply