انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: تغییر نمایشگر تصویر پیش‌فرض PIL پایتون  (دفعات بازدید: 1440 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین hashak

  • Jr. Member
  • *
  • ارسال: 37
  • جنسیت : پسر
تغییر نمایشگر تصویر پیش‌فرض PIL پایتون
« : 03 اردیبهشت 1397، 09:53 ب‌ظ »
من این کد رو نوشتم برای نمایش دادن تصویر

from PIL import Image
im = "/home/sh/Desktop/main-folder/memory.jpeg"
Image.open(im).show()

وقتی کد رو اجرا می‌کنم تصویر در نمایشگر تصویر image magick باز می‌شه. چطور می‌تونم کاری کنم تا در نمایشگر تصویری که به صورت پیش‌فرض روی سیستم من نصب است باز بشه؟
« آخرین ویرایش: 03 اردیبهشت 1397، 10:35 ب‌ظ توسط hashak »
تازه کار هستم.

آفلاین Nelliel

  • High Hero Member
  • *
  • ارسال: 2151
  • جنسیت : پسر
  • Nelliel Tu Odelschwanck
پاسخ : تغییر نمایشگر تصویر پیش‌فرض PIL پایتون
« پاسخ #1 : 03 اردیبهشت 1397، 10:03 ب‌ظ »
من این کد رو نوشتم برای نمایش دادن تصویر

from PIL import Image
im = "/home/ha/Desktop/main-folder/memory.jpeg"
Image.open(im).show()

وقتی کد رو اجرا می‌کنم تصویر در نمایشگر تصویر image magick باز می‌شه. چطور می‌تونم کاری کنم تا در نمایشگر تصویری که به صورت پیش‌فرض روی سیستم من نصب است باز بشه؟

نمی‌دونم دقیقا چقدر برات مهمه که از PIL استفاده بشه، اما اگر مهم نیست: (مثلا)
(1)[22:02][ArchLinux][~]$ python3
Python 3.6.5 (default, Apr 12 2018, 22:45:43)
[GCC 7.3.1 20180312] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.sys
os.sys            os.sysconf(       os.sysconf_names  os.system(       
>>> os.system("viewnior /path/to/file")
طرفدار انیمه و مانگا - کاربر آرچ لینوکس

آفلاین hashak

  • Jr. Member
  • *
  • ارسال: 37
  • جنسیت : پسر
پاسخ : تغییر نمایشگر تصویر پیش‌فرض PIL پایتون
« پاسخ #2 : 03 اردیبهشت 1397، 10:35 ب‌ظ »
استفاده از PIL الان برام خیلی مهم نیست،  برای من خطای Permission denied می‌ده، من از Python 3.5.2 استفاده می‌کنم. من اشتباه کردم یا باید قبلش کار دیگه‌ای کنم؟

python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system("/home/sh/Desktop/main-folder/27879250.jpg")
sh: 1: /home/sh/Desktop/main-folder/27879250.jpg: Permission denied
32256
>>>
تازه کار هستم.

آفلاین Nelliel

  • High Hero Member
  • *
  • ارسال: 2151
  • جنسیت : پسر
  • Nelliel Tu Odelschwanck
پاسخ : تغییر نمایشگر تصویر پیش‌فرض PIL پایتون
« پاسخ #3 : 03 اردیبهشت 1397، 10:57 ب‌ظ »
استفاده از PIL الان برام خیلی مهم نیست،  برای من خطای Permission denied می‌ده، من از Python 3.5.2 استفاده می‌کنم. من اشتباه کردم یا باید قبلش کار دیگه‌ای کنم؟

python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system("/home/sh/Desktop/main-folder/27879250.jpg")
sh: 1: /home/sh/Desktop/main-folder/27879250.jpg: Permission denied
32256
>>>

باید یه ابزار برای اینکه باهاش تصویر را اجرا کنه انتخاب کنید.

مثلا با feh:
>>> import os
>>> os.system("feh /home/sh/Desktop/main-folder/27879250.jpg")
طرفدار انیمه و مانگا - کاربر آرچ لینوکس

آفلاین hashak

  • Jr. Member
  • *
  • ارسال: 37
  • جنسیت : پسر
پاسخ : تغییر نمایشگر تصویر پیش‌فرض PIL پایتون
« پاسخ #4 : 03 اردیبهشت 1397، 11:03 ب‌ظ »
نقل‌قول
باید یه ابزار برای اینکه باهاش تصویر را اجرا کنه انتخاب کنید.

مثلا با feh:
>>> import os
>>> os.system("feh /home/sh/Desktop/main-folder/27879250.jpg")

بسیار عالی و تشکر فراوان.
تازه کار هستم.

آفلاین hashak

  • Jr. Member
  • *
  • ارسال: 37
  • جنسیت : پسر
پاسخ : تغییر نمایشگر تصویر پیش‌فرض PIL پایتون
« پاسخ #5 : 03 اردیبهشت 1397، 11:09 ب‌ظ »
ایا راهی وجود داره که نمایشگر تصویر پیش‌فرض سیستم به شکل خودکار شناسایی بشه و نیازی به وارد کردن دستی اسمش نباشه؟
تازه کار هستم.

آفلاین Nelliel

  • High Hero Member
  • *
  • ارسال: 2151
  • جنسیت : پسر
  • Nelliel Tu Odelschwanck
پاسخ : تغییر نمایشگر تصویر پیش‌فرض PIL پایتون
« پاسخ #6 : 04 اردیبهشت 1397، 05:02 ب‌ظ »
ایا راهی وجود داره که نمایشگر تصویر پیش‌فرض سیستم به شکل خودکار شناسایی بشه و نیازی به وارد کردن دستی اسمش نباشه؟

نرم‌افزار‌های پیش‌گزیده در پرونده زیر ذخیره می‌شوند:

sudo vim /usr/share/applications/mimeinfo.cache
در صورتی که کاربر چیزی تعیین کرده باشه در اینجا می‌تونید از این فایل متنی متوجه بشید که ابزار پیش‌فرضش برای باز کردن تصاویر چی هست.

یا حتی می‌تونی از xdg-open استفاده کنی.

مثلا:
(3)[16:42][ArchLinux][~]$ cat /usr/share/applications/mimeinfo.cache | grep image
application/x-cd-image=imagewriter.desktop;engrampa.desktop;
application/x-raw-disk-image=imagewriter.desktop;
image/bmp=gpicview.desktop;feh.desktop;gimp.desktop;
image/eps=org.pwmt.zathura-ps.desktop;
image/g3fax=gimp.desktop;
image/gif=gpicview.desktop;feh.desktop;gimp.desktop;
image/jp2=gimp.desktop;
image/jpeg=gpicview.desktop;feh.desktop;gimp.desktop;
image/jpeg2000=gimp.desktop;
image/jpg=gpicview.desktop;feh.desktop;
image/jpx=gimp.desktop;
image/pjpeg=feh.desktop;
image/png=gpicview.desktop;feh.desktop;gimp.desktop;
image/svg+xml=gpicview.desktop;gimp.desktop;
image/svg-xml=gpicview.desktop;
image/tiff=gpicview.desktop;evince.desktop;feh.desktop;gimp.desktop;
image/vnd.djvu=org.pwmt.zathura-djvu.desktop;
image/vnd.djvu+multipage=evince.desktop;org.pwmt.zathura-djvu.desktop;
image/x-bmp=gpicview.desktop;feh.desktop;
image/x-bzeps=evince.desktop;
image/x-compressed-xcf=gimp.desktop;
image/x-eps=org.pwmt.zathura-ps.desktop;evince.desktop;
image/x-fits=gimp.desktop;
image/x-gimp-gbr=gimp.desktop;
image/x-gimp-gih=gimp.desktop;
image/x-gimp-pat=gimp.desktop;
image/x-gzeps=evince.desktop;
image/x-icon=gimp.desktop;
image/x-pcx=gpicview.desktop;feh.desktop;gimp.desktop;
image/x-png=feh.desktop;
image/x-portable-anymap=feh.desktop;gimp.desktop;
image/x-portable-bitmap=gpicview.desktop;feh.desktop;gimp.desktop;
image/x-portable-graymap=feh.desktop;gimp.desktop;
image/x-portable-greymap=gpicview.desktop;
image/x-portable-pixmap=gpicview.desktop;feh.desktop;gimp.desktop;
image/x-psd=gimp.desktop;
image/x-psp=gimp.desktop;
image/x-sgi=gimp.desktop;
image/x-targa=gpicview.desktop;
image/x-tga=gpicview.desktop;feh.desktop;gimp.desktop;
image/x-wmf=gimp.desktop;
image/x-xbitmap=feh.desktop;gimp.desktop;
image/x-xcf=gimp.desktop;
image/x-xcursor=gimp.desktop;
image/x-xpixmap=gimp.desktop;
image/x-xwindowdump=gimp.desktop;
(4)[16:43][ArchLinux][~]$

بعد از این که اون پرونده‌ها را خوندی، می‌تونی از رجکس هم استفاده کنی برای پیدا کردن نوشته‌ مورد نظر:
(2)[17:00][ArchLinux][~]$ python3
Python 3.6.5 (default, Apr 12 2018, 22:45:43)
[GCC 7.3.1 20180312] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> file = open('/usr/share/applications/mimeinfo.cache', 'r')
>>> reading = file.read()
>>> reading

(در همون interpreter پایتون)

import re
help re


البته‌های راه‌های زیادی هست، من اصلا وقت نذاشتم که بخوام برات چیزی بنویسم، ایده‌ کلی را دادم، اگر موفق نشدی، بگو خودم برات می‌نویسم.

طرفدار انیمه و مانگا - کاربر آرچ لینوکس

آفلاین hashak

  • Jr. Member
  • *
  • ارسال: 37
  • جنسیت : پسر
پاسخ : تغییر نمایشگر تصویر پیش‌فرض PIL پایتون
« پاسخ #7 : 05 اردیبهشت 1397، 09:18 ب‌ظ »
تشکر. من از این روش استفاده کردم و داره کار می‌کنه.
user_app = open("/usr/share/applications/mimeinfo.cache").read()

def find_app(user_app, first, last):
    start = user_app.index(first) + len(first)
    end = user_app.index(last, start)
    return user_app[start:end]

image_viewer = find_app(user_app, "image/bmp=", ".desktop;")
print(image_viewer)

 دلیل انتخاب image/bmp= این بود که فکر کردم فرمت bmp خیلی غریبه  ;D و به همین خاطر سیستم، نمایشگر تصویر پیش‌فرض رو  به اون اختصاص می‌ده.
تازه کار هستم.