Blame resources/conv_to_ewm_prop.py

Packit Service fa4841
#!/usr/bin/python
Packit Service fa4841
Packit Service fa4841
# Copyright 2011 Anthony Tong <atong@trustedcs.com>
Packit Service fa4841
Packit Service fa4841
# Licensed under the Apache License, Version 2.0 (the "License");
Packit Service fa4841
# you may not use this file except in compliance with the License.
Packit Service fa4841
# You may obtain a copy of the License at
Packit Service fa4841
#
Packit Service fa4841
#     http://www.apache.org/licenses/LICENSE-2.0
Packit Service fa4841
#
Packit Service fa4841
# Unless required by applicable law or agreed to in writing, software
Packit Service fa4841
# distributed under the License is distributed on an "AS IS" BASIS,
Packit Service fa4841
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit Service fa4841
# See the License for the specific language governing permissions and
Packit Service fa4841
# limitations under the License.
Packit Service fa4841
Packit Service fa4841
"""
Packit Service fa4841
tool to preconvert an icon file to a x11 property as expected
Packit Service fa4841
by ewm hints spec:
Packit Service fa4841
width, length, [argb pixels]
Packit Service fa4841
"""
Packit Service fa4841
Packit Service fa4841
import PIL
Packit Service fa4841
import PIL.Image
Packit Service fa4841
Packit Service fa4841
import os
Packit Service fa4841
import sys
Packit Service fa4841
Packit Service fa4841
def usage():
Packit Service fa4841
	print "convert_to_ewm_prop <infile> <outfile>"
Packit Service fa4841
	return 1
Packit Service fa4841
Packit Service fa4841
def main(argv):
Packit Service fa4841
	if len(argv) != 3:
Packit Service fa4841
		return usage()
Packit Service fa4841
Packit Service fa4841
	im = PIL.Image.open(argv[1])
Packit Service fa4841
	fp = open(argv[2], 'w')
Packit Service fa4841
Packit Service fa4841
	var_name = os.path.basename(argv[2])
Packit Service fa4841
	if var_name.endswith('.h'):
Packit Service fa4841
		var_name = var_name[:-2]
Packit Service fa4841
Packit Service fa4841
	fp.write("static unsigned long %s_prop [] = {\n" % var_name)
Packit Service fa4841
	fp.write(" %d, %d\n" % im.size)
Packit Service fa4841
Packit Service fa4841
	i = 0
Packit Service fa4841
	for pixel in im.getdata():
Packit Service fa4841
		r,g,b,a = pixel
Packit Service fa4841
		pixel = b 
Packit Service fa4841
		pixel |= g << 8
Packit Service fa4841
		pixel |= r << 16
Packit Service fa4841
		pixel |= a << 24
Packit Service fa4841
		fp.write(" , %du" % pixel)
Packit Service fa4841
Packit Service fa4841
		i += 1
Packit Service fa4841
		if i % 8 == 0:
Packit Service fa4841
			fp.write("\n")
Packit Service fa4841
Packit Service fa4841
	fp.write("};\n")
Packit Service fa4841
Packit Service fa4841
if __name__ == '__main__':
Packit Service fa4841
	sys.exit(main(sys.argv))
Packit Service fa4841