Code archives/Graphics/Trim Pixmap (trim away alpha channel)

This code has been declared by its author to be Public Domain code.

Download source code

Trim Pixmap (trim away alpha channel) by shinkiro12011
This function will return a pixmap that has been trimmed to keep the filesize small. Note that it's not optimized and wasn't tested for real-time purposes.
Function TrimPixmap:TPixmap( pixmap:TPixmap )
	Local x:Int
	Local y:Int
	Local pixLeft:Int = pixmap.width
	Local pixRight:Int = 0
	Local pixTop:Int = pixmap.height
	Local pixBottom:Int = 0
	'Top -> Down
	For x = 0 Until pixmap.width
		For y = 0 Until pixmap.height
			If pixmap.ReadPixel( x, y ) Shr 24 & $000000FF > 0
				If y < pixTop Then
					pixTop = y
				EndIf
			EndIf
		Next
	Next
	'Down -> Top
	For x = 0 Until pixmap.width
		For y = pixmap.height-1 To 0 Step -1
			If pixmap.ReadPixel( x, y ) Shr 24 & $000000FF > 0
				If y > pixBottom Then
					pixBottom = y
				EndIf
			EndIf
		Next
	Next
	'Left -> Right
	For x = 0 Until pixmap.width
		For y = 0 Until pixmap.height
			If pixmap.ReadPixel( x, y ) Shr 24 & $000000FF > 0
				If x < pixLeft Then
					pixLeft = x
				EndIf
			EndIf
		Next
	Next
	'Right -> Left
	For x = 0 Until pixmap.width
		For y = pixmap.height-1 To 0 Step -1
			If pixmap.ReadPixel( x, y ) Shr 24 & $000000FF > 0
				If x > pixRight Then
					pixRight = x
				EndIf
			EndIf
		Next
	Next
	Return PixmapWindow( pixmap, pixLeft, pixTop, pixRight - pixLeft, pixBottom-pixTop )
End Function

Comments

None.

Code Archives Forum