analitics

Pages

Monday, June 25, 2012

Access system version information using python platform module.

The platform module includes the tools to take some infos about operating system, and hardware platform where a program is running.

import platform
dir(platform)

Show all about this module.

Also you can use the help.

help(platform)

Let's try another

print platform.win32_ver()
('', '', '', '')

So is not Windosw OS.

print platform.system()
Linux

Can be 'Linux', 'Windows' or 'Java' ...

print platform.version()

Show you the system's release version ( can be Debian , Ubuntu , Fedora ).

print platform.architecture()
('32bit', 'ELF')
print platform.uname()

Show the infos like uname linux command.

print platform.release()

Show the kernel use by system.

print platform.machine()
i686
print platform.node()

Show the computer's network name.

print platform.linux_distribution()

Show you the linux distribution.

Monday, April 30, 2012

Create tile image for your game using python script

What is tile image?
Tile image is a method of storing a sequence of images placed in a single image file.
These images are then processed according to user needs.
Here's an example below:
How we can create these images?
We can use graphics editing software to create them separately.
I used Blender 3D to create separate images.
A tutorial how to do this can be found here on section Blender 3D.
After I rendered images separately and named: 0000.png , 0001.png , 0002.png , 0003.png
I created a python script to put in an tile image, see below:
import os
import PIL
from PIL import Image
from PIL import ImageDraw
o=Image.new("RGBA",(192,48))
d= ImageDraw.Draw(o)
for pic in range(0,4):
        strpic=str(pic)
        filnam="000"+strpic+".png"
        x=pic*48
        img=Image.open(filnam)
        o.paste(img,(0+x,0))
        o.save("out.png")
The script reads the image files of size 48 pixels and puts them into one image called out.png

Resize screenshot with PIL python module .

The script that I've created is made ​​to shrink images. Some screenshots are large and should be resized to be used later on the Internet. It is a simple example that uses PIL module. This script reads the image name that I want to resize and filename that will be saved image. I use python PIL functions how to create a new image.
"""
This python script read the name of image and will create a new image with the given width and height.

$ python imgresz.py 
filename input image:test.png
test.png
filename output image:test-out.jpg
->width:500
->height:400
"""
import os 
import sys
from PIL import Image 
from PIL import ImageDraw
filnaminp=raw_input("filename input image:")
filnamout=raw_input("filename output image:")
w=input("->width:")
h=input("->height:")
imgi=Image.open(str(filnaminp))
imgo=imgi.resize((w,h),Image.BILINEAR)
imgo.save(str(filnamout))

Saturday, April 7, 2012

When to use '__main__' ?

When your script is run it as a command to the Python interpreter: python your_script.py all of the code that is at indentation level 0 gets executed and functions and classes that are defined but none of their code gets ran. If will then read :
if __name__ == '__main__'
so it will execute the block standalone. In other words, when you use the __main__ this means the module is being run standalone
if __name__ == '__main__':
 print '... is being run by itself'
else:
 print '... is being run directly'

Sunday, February 26, 2012

The wx module - tutorial 02 - class and button function

In this tutorial I will show how to use wx using one class example.

This tutorial is based on some code from a previous tutorial.

Let's see the source code:

import wx

class my_gui_form(wx.Frame):
 def __init__(self):
  wx.Frame.__init__(self, None, -1, 'Example windows wx with Python',size=(300,150))
  wx.StaticText(self, -1, 'User', (10, 20))
  user = wx.TextCtrl(self, -1, '',  (110, 20), (160, -1))
  wx.StaticText(self, -1, 'Password', (10, 50))
  passwd = wx.TextCtrl(self, -1, "", (110,50),(160, -1), style=wx.TE_PASSWORD)
  conn = wx.Button(self, -1,'Connect',(10,80),(260, -1))
  conn.Bind(wx.EVT_BUTTON, self.onButton)
  
 def onButton(self, event):
  button = event.GetEventObject()
  print "The button's label is: " + button.GetLabel()
  print "The button's name is: " + button.GetName()

if __name__ == "__main__":
 app1 = wx.App(False)
 frame = my_gui_form()
 frame.Show()
 app1.MainLoop()

First , I make a class named my_gui_form.

Also I add the self on each function from this class.

I make the onButton function to working with the button Connect.

I read the event of the button with event.GetEventObject.

The link with this function is make by:

conn.Bind(wx.EVT_BUTTON, self.onButton)

Source Code Optimization:

The -1 from is can replace with wx.ID_ANY.

Thursday, February 23, 2012

The wx module - tutorial 01

Install wx python module using root account.

# yum install wxPython.i686 

The most simple example is show bellow.


$python 
Python 2.7.2 (default, Oct 27 2011, 01:36:46) 
[GCC 4.6.1 20111003 (Red Hat 4.6.1-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>> app1=wx.App()
>>> frame=wx.Frame(None,-1,'Example windows wx with Python')
>>> frame.Show()
True
>>> app1.MainLoop()
>>> 

Let's see the result of this python script:

Let's take a look at the source code.

import wx

This line of code allows us to use wx python module.

app1=wx.App()

This line defines our application named app1.

A frame is a window whose size and position can be changed by the user.

Let's see:

frame=wx.Frame(None,-1,'Example windows wx with Python')
frame.Show()

Finally, processing and display function in main function.

app1.MainLoop()

Bellow, we can see a more complex example, where we find : labels , two editbox and one button.

The event-processing function button has not been implemented.

import wx
app1=wx.App()
frame=wx.Frame(None,-1,'Example windows wx with Python',size=(300,150))
wx.StaticText(frame, -1, 'User', (10, 20))
user = wx.TextCtrl(frame, -1, '',  (110, 20), (160, -1))
wx.StaticText(frame, -1, 'Password', (10, 50))
passwd = wx.TextCtrl(frame, -1, "", (110,50),(160, -1), style=wx.TE_PASSWORD)
conn = wx.Button(frame, -1,'Connect',(10,80),(260, -1))
frame.Show()
app1.MainLoop()

Let's see the result of this python script:

I will illustrate how this working in a future tutorial.