ফটোশপ টিউটোরিয়াল : টাক মাথায় চুল গজান

অন্যের মাথায় টাক দেখে আনন্দ পেলেও নিজের মাথায় টাক দেখতে পছন্দ করেন না কেউই। টাক মাথায় চুল গজানোর বিজ্ঞাপন দেখে বহু টাকা খরচ করে তেল কেনেন। টাক মাথার তাক লাগানো সমাধান বিজ্ঞাপন দেখে কেউ কেউ বহু টাকা খরচ করে দোকানে গিয়ে আঠা দিয়ে চুল লাগান। এত কষ্ট করার প্রয়োজন নেই, ফটোশপে খুব সহজেই টাক মাথায় চুল গজাতে পারেন। অবশ্য সত্যিকারের মাথায় না, টাকমাথার ছবিতে।

এজন্য অবশ্যই আপনার দুটি ছবি প্রয়োজন হবে। একটি যে ছবিতে পরিবর্তন করবেন, আরেকটি পছন্দমত চুলঅলা মাথার চবি। ছবিদুটি একই কোনে, একই ধরনের আলোতে হলে সুবিধে হবে।

# যে ছবিতে পরিবর্তন করতে চান তাকে ওপেন করুন।

# চুলের ছবিটি আরেকটি লেয়ারে আনুন এবং মাস্ক, সিলেকশন অথবা সুবিধেজনক যে কোন পদ্ধতিতে চুলটুকু সিলেক্ট করে পৃথক করুন। চুল ছাড়া বাকি অংশ মুছে দিন।

# চুলকে মাথার ওপর সঠিক যায়গায় আনুন এবং প্রয়োজনে স্কেল পরিবর্তন করে নিন।

# মেনু থেকে Edit – Transform – Warp কমান্ড দিয়ে প্রয়োজনে বিভিন্ন অংশকে যায়গামত ঠিকভাবে বসান।

# দুটি লেয়ারের টোন একই পর্যায়ে আনার জন্য মেনু থেকে Image – Adjustments – Match Color কমান্ড দিন এবং স্লাইডার ব্যবহার করে দুটি লেয়ারে রং একই লেভেলে আনুন।

# চুলের ধারগুলিতে সমস্যা থাকলে চিকন ব্রাসের সাহায্যে ঠিক করে নিন।

# যে ফরম্যাটে সেভ করতে চান সেই ফরম্যাটে সেভ করুন।

যত নিখুতভাবে চুলকে পৃথক করতে পারবেন কাজের ফল তত ভাল হবে।


পাইথন এবং আরও পাইথন ( শেষ পর্ব )


গত পর্বগুলোতে আমরা চেষ্টা করেছি পাইথনের মাধ্যমে প্রোগ্রামিংয়ের বিভিন্ন বিষয় সম্পর্কে ধারণা দিতে। পর্বগুলোতে প্রোগ্রামিংয়ের মৌলিক ধারণা থেকে শুরু করে অনেক জটিল বিষয় সম্পর্কেও বলা হয়েছে। ভালো প্রোগ্রামিং দক্ষতা অর্জনের জন্য দরকার অনুশীলন এবং অধ্যয়ন। তাই আজকের পর্বে পাইথন সম্পর্কিত কিছু ওয়েব ঠিকানা সম্পর্কে বলব। এসব দ্বারা নতুন যাঁরা প্রোগ্রামিং করছেন, তাঁরা উপকৃত হবেন। এ ছাড়া যাঁদের বেশ অভিজ্ঞতা রয়েছে, তাঁরা আরও অনেক বিষয় নিয়ে জানতে পারবেন।

http://interactivepython.org/courselib/static/thinkcspy/index.html

সাইটটিতে আপনি একদম সহজ বিষয়গুলো থেকে শুরু করে অনেক কঠিন বিষয়ের বিস্তারিত ব্যাখ্যা এবং উদাহরণ পাবেন। সবচেয়ে আকর্ষণীয় বিষয় হচ্ছে, আপনি সাইটের মধ্যেই কোড অনুশীলন করতে পারবেন। এ ছাড়া ছোট ছোট কুইজের ব্যবস্থা রয়েছে আপনার জ্ঞানকে ঝালিয়ে নেওয়ার জন্য। যাঁরা কম্পিউটার বিজ্ঞান বিষয়ে পড়ছেন বা পড়তে আগ্রহী, তাঁদের জন্য অ্যালগরিদম একটি গুরত্বপূর্ণ বিষয়।

http://cs.anu.edu.au/~ Alistair.Rendell/Teaching/apac_comp3600/

সাইটে বিভিন্ন অ্যালগরিদম এবং পাইথনে তাদের ব্যবহার দেওয়া আছে। এ ছাড়া যাঁরা অনলাইনে অনুশীলন করতে আগ্রহী, তাঁরা

http://shell.appspot.com/ এবং

http://ideone.com/

সাইট দুটি দেখতে পারেন। সাইট দুটিতে আপনি কম্পিউটারে পাইথন ইনস্টল না করেও অনুশীলন করতে পারবেন। এ ছাড়া

www.checkio.org/

সাইটটি থেকে ঘুরে আসতে পারেন মজার মজার সব পাইথনবিষয়ক সমস্যার জন্য। পাইথনবিষয়ক Think Python How to Think Like a Computer Scientist এই বইটি বিনা মূল্যে নামিয়ে নিতে পারেন এই ঠিকানা থেকে

www.greenteapress.com/thinkpython/thinkpython.pdf এবং

A Byte of Python বইটি

http://files.swaroopch.com/python/byte_of_python.pdf

সাইট থেকে নামাতে পারেন। শেষ করার আগে এক লাইনের একটি কোড: import this লিখুন পাইথনে, তাহলে দেখতে পাবেন সুন্দর একটি লেখা আপনার স্ক্রিনে।

মাল্টিমিডিয়ার আরও কিছু লাইব্রেরি ( পর্ব-২৩ )


গত তিন পর্বে আমরা অ্যানিমেশন এবং অডিও ফাইল নিয়ে কাজ করার জন্য কয়েকটি লাইব্রেরি ব্যবহার করেছিলাম। এ ছাড়া ভিডিও সম্পাদনা এবং ছবি নিয়ে অন্যান্য কাজের জন্য আরও জনপ্রিয় কিছু লাইব্রেরি রয়েছে। এ রকম কয়েকটি লাইব্রেরির নাম এবং কাজ সম্পর্কে আজ জানব।তবে এসব ব্যবহার করার জন্য পাইথনের ২ সংস্করণটি প্রয়োজন।

ওপেনসিভি: ওপেন সোর্স কম্পিউটার ভিশন নামের এই লাইব্রেরি দিয়ে শুধু পাইথনে নয়, অন্যান্য প্রোগ্রামিং ভাষাতেও বিভিন্ন কাজ করা যায়। মোশন ট্র্যাকিং, প্যাটার্ন রিকগনিশন ইত্যাদি কাজ করার জন্য এটি বেশ জনপ্রিয়। http://sourceforge.net/projects/ opencvlibrary/files/opencv-win/2.4.3/OpenCV-2.4.3.exe/download ঠিকানার ওয়েবসাইট থেকে এটি নামানো যাবে।

পাইমিডিয়া: এটি অনেক পুরোনো একটি লাইব্রেরি, তবে ভিডিও ফাইলে টুকিটাকি কাজের জন্য বেশ ভালো। নামানোর ঠিকানা:

www.lfd.uci.edu/~gohlke/pythonlibs/queofn3p/pymedia-1.3.7.3.win32-py2.7.exe

পাইএফএফএমপিইজি: পাইমিডিয়ার মতোই তবে নতুন ধরনের অনেক ফাইলে কাজ করার জন্য উপযুক্ত। ঠিকানা:

http://pyffmpeg.googlecode.com/files/pyffmpeg-2.0.win32.zip।

পাইথনে অডিও ফাইল নিয়ে কাজ ( পর্ব-২২ )


আমরা এই পর্বে অডিও ফাইলের একটি লাইব্রেরি নিয়ে কাজ করব। পাই-অডিও নামের লাইব্রেরিটি http://people.csail.mit.edu/hubert/ pyaudio/#downloads থেকে নামিয়ে নিন। তারপর লিখে ফেলুন নিচের লাইনগুলো:

import pyaudio

import wave

import sys

wf = wave.open(sys.argv[1], “rb”)

p = pyaudio.PyAudio()

stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),

channels=wf.getnchannels(),

rate=wf.getframerate(),

output=True)

data = wf.readframes(1024)

while data != “”:

stream.write(data)

data = wf.readframes(1024)

stream.stop_stream()

stream.close()

p.terminate()

এখন স্টার্ট মেনু থেকে রানে গিয়ে %userprofile% লিখে এন্টার চাপুন। যে ফোল্ডার আসবে তাতে test.py নামে সেইভ করে রাখুন ফাইলটি। এখন একটি WAV ফাইল test.wav নামে ওই ফোল্ডারে সেভ করুন। এখন স্টার্ট মেনু থেকে আবার রানে গিয়ে cmd লিখে এন্টার চাপুন। তারপর লিখুন python test.py test.wav, এন্টার চাপলে দেখবেন ফাইলটি প্লে হচ্ছে।

পাইথনে ত্রিমাত্রিক অ্যানিমেশন ( পর্ব-২১ )


আমরা পাইথনে পিগলেট ব্যবহার করে দ্বিমাত্রিক একটি ছবি এঁকেছিলাম। আজকে দেখব কীভাবে পাইথনে ত্রিমাত্রিক অ্যানিমেশন করতে হয়। এ জন্য ভিপাইথন নামের একটি লাইব্রেরি আমরা ব্যবহার করব। তবে প্রথমে পাইথনের ৩.২.৩ সংস্করণ ইন্সটল করতে হবে, যা ৩.৩-এর পাশাপাশি ব্যবহার করা যায়। তাহলে www.python.org/ftp/python/3.2.3/python-3.2.3.msi ঠিকানা থেকে ৩.২.৩ সংস্করণ নামিয়ে ইন্সটল করুন এবং www.vpython.org/contents/download/VPython-Win-Py3.2-5.74.exe ঠিকানা থেকে ভিপাইথন নামিয়ে ইনস্টল করুন। দেখবেন স্টার্ট মেনু এবং ডেস্কটপে VIDLE for VPython নামে শর্টকাট তৈরি হয়েছে, খুলে লিখে ফেলুন:

from visual import *

ball=sphere(pos=(0,0,0),radius=1,color=color.red)

wall=box(pos=(10,0,0),size=(1,12,12),color=color.green)

ball.velocity=vector(25,0,0)

delS=0.001

s=0

while s wall.pos.x:

ball.velocity.x=-ball.velocity.x

ball.pos=ball.pos+ball.velocity*delS

s=s+delS

সেভ করে রান করলে দেখবেন চলন্ত একটি বল এবং দেয়াল দেখা যাচ্ছে।

পাইথনে মাল্টিমিডিয়া প্রোগ্রামিং ( পর্ব-২০ )


আজকের পর্ব ও পরের তিনটি পর্বে আমরা পাইথনে কীভাবে মাল্টিমিডিয়া প্রোগ্রামিং করতে হয় তা দেখব। এই পর্বে আমরা পিগলেট নামে একটি লাইব্রেরি ব্যবহার করব। এটি পাইথনের সঙ্গে থাকে না, আলাদাভাবে ইন্সটল করে নিতে হয়। প্রথমে http://pyglet.googlecode.com/files/pyglet-1.2alpha1.zip থেকে জিপ করা ফাইলটি নামিয়ে নিন। এখন স্টার্ট মেনু থেকে রানে গিয়ে টাইপ করুন: %userprofile% এবং সেখানে ফাইলটি কপি করুন। তারপর আনজিপ করুন এবং আবার স্টার্ট মেনু থেকে রানে যান, এবার লিখুন cmd, এবার যে উইন্ডোটি খুলবে তাতে লিখুন: pyglet-1.2alpha1\setup.py install এবং কিছুক্ষণ অপেক্ষা করুন পিগলেট ইন্সটল হওয়ার জন্য। নোট প্যাডে এখন লিখে ফেলুন:

from pyglet.gl import *

window = pyglet.window.Window()

@window.event

def on_draw():

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (120, 120, 120, 260)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (120, 260, 440, 260)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (440, 260, 440, 120)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (120, 120, 440, 120)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (80, 240, 280, 340)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (280, 340, 480, 240)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (250, 120, 250, 220)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (250, 220, 330, 220)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (330, 220, 330, 120)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (160, 150, 160, 200)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (160, 200, 210, 200)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (210, 200, 210, 150)))

pyglet.graphics.draw(2, pyglet.gl.GL_LINES,(‘v2i’, (210, 150, 160, 150)))

pyglet.app.run()

সেইভ করে রান করলেই দেখতে পাবেন আঁকা ছবি।

পাইথনে তৈরি একটি অ্যাড্রেসবুক ( পর্ব-১৯ )


আজকের ছোট একটি অ্যাড্রেসবুকের প্রোগ্রাম বানাব। গত পর্ব পর্যন্ত যেসব উদাহরণ দেখানো হয়েছে, তা দিয়েই এ ধরনের অ্যাড্রেসবুক বানানো সম্ভব। তাহলে দেখুন, কীভাবে বানাতে হবে এ ধরনের একটি অ্যাড্রেসবুক:

def savetofile (text):

file=open(“contacts.bin”,”a”)

file.write (text)

file.close ()

print (“Saved Successfully”)

def readfromfile () :

try :

file=open (“contacts.bin”,”r”)

while True :

str=file.readline ()

if len(str)==0 :

break

print (str)

file.close ()

except FileNotFoundError :

print (“File doesn¤t exist”)

l=1

while l==1:

print (“Enter 1 for new entry”)

print (“Enter 2 to view all”)

print (“Enter 9 to exit”)

i=input (“Enter your input: “)

if i==”1”:

name=input (“Enter name: “)

phone=input (“Enter Phone No.: “)

email=input (“Enter E-mail ID: “)

save=”Name:”+name+”,”+”Phone:”+phone+”,”+”E-mail:”+email

savetofile (save)

elif i==”2”:

readfromfile ()

elif i==”9”:

l=0

exit ()

else :

print (“Not a valid entry”)

দেখুন, এখানে ফাইলে তথ্যগুলো লিখে রাখা হচ্ছে, যার ফলে আপনি প্রোগ্রাম বন্ধ করলেও পরে তা যেন পড়া যায়। আরও লক্ষ করুন, দুটি ফাংশন ব্যবহার করে ফাইলে লেখা এবং ফাইল থেকে পড়ার কাজটি করা হয়েছে।

পাইথনে তারিখ বারের আদ্যোপান্ত ( পর্ব-১৮ )


আমাদের প্রায়ই তারিখ, বার ও সময় নিয়ে কাজ করতে হয়। পাইথনে প্রোগ্রাম লিখে কীভাবে প্রয়োজনমতো তারিখ, বার বা সময় বের করে নিতে হয় তার কয়েকটি উদাহরণ নিচে দেওয়া হলো:

import datetime

print(datetime.datetime.today())

আউটপুট: আজকের তারিখ এবং এখন সময় কত তা মাইক্রোসেকেন্ড (এক সেকেন্ডের এক হাজার ভাগের এক ভাগ) পর্যন্ত দেখাবে।

print(datetime.date.today())

আউটপুট: শুধু আজকের তারিখ দেখাবে।

dt=datetime.datetime.today()

আউটপুট: এটি dt নামে একটি ভ্যারিয়েবলে তারিখ এবং সময় রাখবে।

dt.date()

আউটপুট: date() আসলে একটি ফাংশন, এটি ফাংশনটির প্যারামিটারগুলো দেখাবে।

dt.year

আউটপুট: শুধু বর্তমান বছর দেখাবে।

dt.month

আউটপুট: শুধু বর্তমান মাস দেখাবে।

dt.day

আউটপুট: শুধু মাসের আজকের দিন দেখাবে।

dt.time()

আউটপুট: time() ফাংশনটি র প্যারামিটারগুলো দেখাবে।

dt.hour

আউটপুট: এখন ঘণ্টা কত তা দেখাবে।

dt.minute

আউটপুট: এখন মিনিট কত তা দেখাবে।

dt.second

আউটপুট: এখন সেকেন্ড কত তা দেখাবে।

dt.microsecond

আউটপুট: এখন মাইক্রোসেকেন্ড কত তা দেখাবে।

এভাবে প্রয়োজনমতো আপনি সময় বের করে নিয়ে বিভিন্ন জায়গায় ব্যবহার করতে পারেন, তবে অবশ্যই প্রথমে import datetime লিখতে ভুলবেন না।

পাইথনে এক্সেপশন নিয়ন্ত্রণ ( পর্ব-১৭ )


পাইথনের এই ধারাবাহিক অনুসরণ প্রথম পর্ব থেকেই যাঁরা করেছেন তাঁরা কাজের কোনো না কোনো সময় বিভিন্ন ধরনের ‘এরর’ পেয়েছেন। নিচের প্রোগ্রামিং সংকেত (কোড) দেখুন:

while True:

i=int(input(“Enter an integer: “))

print (i)

আউটপুট আসবে: Enter an integer:

এখন যদি আপনি কোনো নম্বর না দিয়ে অন্য কোনো অক্ষর দিয়ে থাকেন, যেমন ধরুন আপনি ভুলক্রমে r দিলেন, তাহলে নিচের এররটি দেখাবে:

Traceback (most recent call last):

File “”, line 1, in

ValueError: invalid literal for int() with base 10: ¤r¤

এর কারণ হচ্ছে আপনি কোনো সংখ্যা ইনপুট দেননি। যেকোনো সময় এ ধরনের ভুল হতেই পারে। প্রোগ্রাম যে ইনপুট আশা করছে তা পাচ্ছে না বা ব্যতিক্রম পাচ্ছে বলেই ভুলটি ধরছে, তাই এ ধরনের ভুলকে বলা হয় এক্সেপশন। আপনার প্রোগ্রামের ব্যবহারকারীকে পরিষ্কার করে বুঝিয়ে দেওয়ার জন্য অথবা প্রোগ্রামকে এ ধরনের ভুল থেকে অভেদ্য রাখার জন্যই এক্সেপশন নিয়ন্ত্রণের ব্যবস্থা রাখা হয়েছে। আগের কোডটি এভাবে লিখুন:

while True:

try:

n=int(input(“Enter an integer: “))

print (n)

except ValueError:

print(“You didn¤t enter a number”)

এখন নম্বর ছাড়া অন্য কিছু লিখলে আউটপুট দেবে: You didn¤t enter a number, যা except block-এ লেখা ছিল।

পাইথনে নেটওয়ার্ক প্রোগ্রামিং ( পর্ব-১৬ )


ফেসবুকসহ চ্যাটের জন্য বিভিন্ন প্রোগ্রাম আমরা ব্যবহার করে থাকি। পাইথন দিয়ে চাইলে এ ধরনের প্রোগ্রামও আপনি বানাতে পারেন। এ ধরনের প্রোগ্রামের জন্য সকেট প্রোগ্রামিং ব্যবহূত হয়। আজ সহজ একটি প্রোগ্রাম আমরা বানাব, যা দিয়ে একমুখী বার্তা প্রেরণ করা যায়। তাহলে প্রথমে একবার পাইথন চালু করে লিখে ফেলুন:

import socket

port=8082

s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

s.bind((“”,port))

while 1:

data,addৎ=s.recvfrom(1024)

print(data)

একটি ব্যাপার লক্ষ রাখবেন, আপনার অ্যান্টিভাইরাস প্রোগ্রাম হয়তো কোনো মেসেজ দিতে পারে। সে ক্ষেত্রে কিছুক্ষণের জন্য অ্যান্টিভাইরাস প্রোগ্রামটি বন্ধ রাখতে পারেন। দুবার এন্টার চাপুন—আপাতত কিছুই হবে না। এবার আরেকটি পাইথন উইন্ডো খুলে লিখুন:

import socket

port=8082

host=”localhost”

s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

s.bind((“”,0))

s.sendto(b”It’s Working”,(host,port))

দেখবেন আগের পাইথনের উইন্ডোতে sendto() ভেতরের লেখাটি দেখাচ্ছে।

ফাইল এবং আরও ফাইল (পর্ব-১৫)


ফাইল নিয়ে কাজ শুরু করতে হলে ফাইলটি কোথায় সেভ আছে বা করতে হবে তা দেখিয়ে দিতে হবে। দেখুন: file=open(“test.txt”,”w”)

এটি কোথায় আছে তা দেখতে চাইলে স্টার্ট মেনু থেকে রান কমান্ডে যান এবং টাইপ করুন: %userprofile%, দেখতে পারবেন যে ফোল্ডারটি দেখাচ্ছে সেখানে test নামে একটি টেক্সট ফাইল রয়েছে। এখানে দেখুন শুধু ফাইলের নাম দেওয়া আছে, আপনি চাইলে কোন ড্রাইভের কোন ফোল্ডারে সেভ হবে তা নির্দিষ্ট করে দিতে পারেন। যেমন:

f1=open (“C:/Python33/test.txt”,”w”)

দেখতে পাবেন C: ড্রাইভের Python33 নামক ফোল্ডারে টেক্সট ফাইলটি রয়েছে। দ্বিতীয় প্যারামিটারটি লক্ষ করুন। গত পর্বে বলেছিলাম w হচ্ছে যখন ফাইলে কিছু লিখবেন এবং r যখন ফাইলের ভেতরের লেখা পড়বেন। ফাইলে কাজ করার জন্য পাইথন পয়েন্টার ব্যবহার করে। পয়েন্টারের বৈশিষ্ট্য হচ্ছে এটি কোনো অক্ষর বা ফাইলের নির্দিষ্ট জায়গাকে নির্দেশ করে। একটি উদাহরণ দিলে ব্যাপারটি পরিষ্কার হবে। প্রথমে আপনি নোট প্যাডে লিখুন: abcdefghijklmnopqrstuvwxyz0123456789 এবং C: ড্রাইভে alphabet.txt নামে সেভ করুন। তারপর পাইথনে লিখুন:

f2=open(“C:/alphabet.txt”,”r”)

f2.read(26)

আউটপুট: abcdefghijklmnopqrstuvwxyz

f2.read(10)

আউটপুট:0123456789

দেখুন, প্রথমে পয়েন্টার ফাইলের প্রথমে ছিল। তাই প্রথম ২৬টি অক্ষর দেখাচ্ছে। পয়েন্টার এখন ২৬-এর ঘরে রয়েছে। তাই পরের লাইনে ২৬-এর পরের অক্ষরগুলো দেখাচ্ছে। এভাবে পয়েন্টার পুরো ফাইল পড়ে ফেললে আর কোনো অক্ষর দেখাবে না। আবার প্রথম বা অন্য যেকোনো স্থানে পয়েন্টার নিতে পারেন। alphabet.txt ফাইলের জন্য লক্ষ করুন: f2.seek(0)

seek দিয়ে এভাবে ফাইলের প্রয়োজনমতো স্থানে আপনি যেতে পারবেন। এবার লিখুন:

f2.read(10)

আউটপুট:abcdefghij

f2.read(26)

আউটপুট:klmnopqrstuvwxyz0123456789

টেক্সট ফাইল ব্যতীত অন্য ধরনের ফাইল পড়ার জন্য wb এবং লেখার জন্য wb ব্যবহার করুন।