{"id":4266,"date":"2023-01-29T18:29:08","date_gmt":"2023-01-29T18:29:08","guid":{"rendered":"https:\/\/texnokun.uz\/?p=4266"},"modified":"2023-01-29T18:29:11","modified_gmt":"2023-01-29T18:29:11","slug":"python-dasturlash-tilida-rasmga-matn-yozish-va-rasmdan-matnni-ajratib-olish","status":"publish","type":"post","link":"https:\/\/texnokun.uz\/?p=4266","title":{"rendered":"Python dasturlash tilida rasmga matn yozish va rasmdan matnni ajratib olish."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">1-qism. Rasmga matn yozish.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Assalomu alaykum!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bugun biz siz bilan Pythonning ommabop &#8220;<strong>Pillow<\/strong>&#8221; kutubxonasidan foydalangan holda rasmga matn joylashtiruvchi dastur yaratamiz. Eng qizig&#8217;i shundaki dastur kodi 10 qatordan iborat bo&#8217;ladi :)!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><br>Demak boshladik!<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Birinchi bo&#8217;lib, so&#8217;z kiritilganda o&#8217;zgartiriladigan rasmni yaratamiz (buni aynan kodda bajarish ham<br>mumkin. Lekin bunga ko&#8217;p ham e&#8217;tibor bermasak ham bo&#8217;ladi. Rasmni va boshqa fayllarni maqola<br>oxiridagi link orqali yuklab olishingiz mumkin):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Agar &#8220;<strong>Pillow<\/strong>&#8221; kutubxonasi kompyuteringizda o&#8217;rnatilmagan bo&#8217;lsa, avval o&#8217;rnatish lozim. Buni esa terminalga ushbu buyruqni kiritish orqali o&#8217;rnatib olamiz:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-text-color has-background\" style=\"background-color:#382b2b\"><code>pip install pillow<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Endi rasm joylashgan papkada yangi &#8220;<strong>main.py<\/strong>&#8221; nomli fayl yaratamiz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Misol uchun sizning matn yozilish kerak bo&#8217;lgan rasm faylingiz &#8220;<strong>Rasm<\/strong>&#8221; nomli papkada, demak &#8220;<strong>main.py<\/strong>&#8220;. Unga birinchi bo&#8217;lib kodda foydalanadigan kutubxonamizdagi funksiyalarni import qilib olamiz:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;<strong>Pillow<\/strong>&#8221; kutubxonasidan hozirda kerak bo&#8217;ladigan&#8221;<strong>Image<\/strong>&#8220;, &#8220;<strong>ImageDraw<\/strong>&#8221; va &#8220;<strong>ImageFont<\/strong>&#8221; &#8220;class&#8221;larni import qilamiz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;<strong>Random<\/strong>&#8221; kutubxonasidan esa &#8220;<strong>randint<\/strong>&#8221; funksiyasini import qilib olamiz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;<strong>Random<\/strong>&#8220;- bu kutubxonani biz yangi yaratiladigan rasmning nomini qo&#8217;yish uchun foydalanamiz.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-text-color has-background\" style=\"background-color:#212020\"><code>from PIL import Image, ImageDraw, ImageFont\nfrom random import randint<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Kutubxonalarni import qilib  bo&#8217;lgach, turli amallar olib boriladigan rasmni dasturga yuklash kodini yozamiz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deylik biz faylni saqlayotgan papkamizda &#8220;Image.png&#8221; nomli rasm bor.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-text-color has-background\" style=\"background-color:#212020\"><code>img = Image.open('Image.png')<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Rasmni o&#8217;zgartirish uchun &#8220;ImageDraw&#8221; &#8220;class&#8221;dan foydalanamiz va uni &#8220;draw&#8221;nomli o&#8217;zgaruvchiga<br>tenglab olamiz va  undan &#8220;Draw&#8221;nomli funksiyani chqairib talabqilingan argument sifatida &#8220;img&#8221; nomli o&#8217;zgaruvchimizga yuklangan rasmimizni kiritib qo&#8217;yamiz.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-text-color has-background\" style=\"background-color:#212020\"><code>draw = ImageDraw.Draw(img)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Rasmda yoziladigan matnning &#8220;<strong>shriftini<\/strong>&#8221; va harflarning o&#8217;lchamini &#8220;<strong>name<\/strong>&#8221; nomli o&#8217;zgaruvchiga &#8220;ImageFont&#8221; klasidagi &#8220;truetype&#8221; nomli funksiya argumentlarini to&#8217;ldirish orqali kiritamiz.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Funksiya talab qiluvchi argumentlat:<\/strong><\/li>\n\n\n\n<li>&#8220;<strong>shrift<\/strong>&#8221; &#8211; &#8220;<strong>string<\/strong>&#8221; ma&#8217;lumot turi sifatida,o&#8217;lcham<\/li>\n\n\n\n<li>&#8220;<strong>size<\/strong>&#8221; so&#8217;zidan keyin barobar ishorasi va &#8220;<strong>int<\/strong>&#8220;,&#8221;<strong>float<\/strong>&#8221; ma&#8217;lumot turi sifatida.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-white-color has-text-color has-background\" style=\"background-color:#212020\"><code>name = ImageFont.truetype('Gabriola.ttf', size=55)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Rasmda yoziladigan matnni foydalanuvchi kiritadi. Uni &#8220;<strong>text<\/strong>&#8221; nomli  o&#8217;zgaruvchimizga &#8220;<strong>string<\/strong>&#8221; ma&#8217;lumot turi sifatida joylashtiramiz.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-text-color has-background\" style=\"background-color:#212020\"><code>text = str(input(\"Rasmga yozilishi kerak bo'lgan matnni kiriting: \"))<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Kiritilgan matnni rasmning markazidan joylashtiramiz.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-text-color has-background\" style=\"background-color:#212020\"><code>draw.text((((600 - len(text) * 20) \/ 2), 280), text, font=name)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Yuqoridagi kodlardan keyin &#8220;img&#8221; nomli o&#8217;zgaruvchida belgilangan rasm markazida kiritilgan matn yozilgan holga keldi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Endi faqatgina rasmdagi o&#8217;zgartirishlardan so&#8217;ng saqlash qoldi.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-text-color has-background\" style=\"background-color:#212020\"><code>img.save(f'{randint(0,100)}.png')<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ko&#8217;rib turganingizdek biz rasmni saqlab oldik.Siz bilasizki  bir papkada ikkta bir xil nomli va bir xil formatli fayllar bo&#8217;lishi mumkin emas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Shuning uchun faylni saqlashda uning nomini 0 dan 100 gacha bo&#8217;lgan tasodifiy son nomi bilan saqlab olyabmiz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quyidagi kodni esa yozish shart emas, lekin dastur yakunida natijani ko&#8217;rish oson bo&#8217;lishi uchun yozib qo&#8217;yamiz.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-text-color has-background\" style=\"background-color:#212020\"><code>img.show()<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Mana dastur tayyor bo&#8217;ldi!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To&#8217;liq kod:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-text-color has-background\" style=\"background-color:#212020\"><code>from PIL import Image, ImageDraw, ImageFont\nfrom random import randint\nimg = Image.open('Image.png')\ndraw = ImageDraw.Draw(img)\nname = ImageFont.truetype('Gabriola.ttf', size=55)\ntext = str(input(\"Rasmga yozilishi kerak bo'lgan matnni kiriting: \"))\ndraw.text((((600 - len(text) * 20) \/ 2), 280), text, font=name)\nimg.save(f'{randint(0,100)}.png')\nimg.show()<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Endi undan foydalanish mumkin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Albatta bu dasturning bir o&#8217;zidan foydalanish unchalik foydalimas ammo, o&#8217;z fikrlaringizni qo&#8217;shsangiz, ajoyib dastur chiqadi!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Masalan, bu dastur asosida telegram bot yaratish ham mumkin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Shunday qilib, 1-qsim tugadi)<br><br>2-qism bu yerda <a href=\"https:\/\/texnokun.uz\/?p=4307\" target=\"_blank\" rel=\"noreferrer noopener\">[\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/]<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bugun biz siz bilan Pythonning ommabop &#8220;Pillow&#8221; kutubxonasidan foydalangan holda rasmga matn joylashtiruvchi dastur yaratamiz. Eng qizig&#8217;i shundaki dastur kodi 10 qatordan iborat bo&#8217;ladi :)!<\/p>\n","protected":false},"author":11,"featured_media":4267,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[14],"tags":[11,108],"class_list":["post-4266","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dasturlash","tag-dasturlash","tag-python"],"_links":{"self":[{"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/posts\/4266","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/texnokun.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4266"}],"version-history":[{"count":5,"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/posts\/4266\/revisions"}],"predecessor-version":[{"id":5377,"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/posts\/4266\/revisions\/5377"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/media\/4267"}],"wp:attachment":[{"href":"https:\/\/texnokun.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/texnokun.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/texnokun.uz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}