Page 1 of 1

combine images

Posted: Mon Apr 11, 2011 5:24 pm
by daft
I have two generated images and want to combine them into one before saving. How to?

Re: combine images

Posted: Mon Apr 11, 2011 5:34 pm
by eesau
Do you want to combine them with transparency or just laid over each other without transparency? Or e.g. side by side?

Re: combine images

Posted: Mon Apr 11, 2011 5:51 pm
by daft
just side by side

Re: combine images

Posted: Mon Apr 11, 2011 6:10 pm
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

Re: combine images

Posted: Mon Apr 11, 2011 6:24 pm
by daft
thank you