דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. עזרה הדדית - מחשבים וטכנולוגיה
  4. להורדה | 'תופס תמורתו' ממיר ומקטין קבצים קל, מהיר, וחינמי!💥

להורדה | 'תופס תמורתו' ממיר ומקטין קבצים קל, מהיר, וחינמי!💥

מתוזמן נעוץ נעול הועבר עזרה הדדית - מחשבים וטכנולוגיה
23 פוסטים 11 כותבים 256 צפיות 18 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • J jc324118983

    האם הוא עושה את זה בצורה חכמה או סתם מקטין את התמונה?

    A מנותק
    A מנותק
    AVIVI
    כתב נערך לאחרונה על ידי
    #9

    @jc324118983 למה אתה מתכוין צורה חכמה?

    בעזרת השם נעשה ונצליח....

    J תגובה 1 תגובה אחרונה
    1
    • A AVIVI

      @jc324118983 למה אתה מתכוין צורה חכמה?

      J מנותק
      J מנותק
      jc324118983
      כתב נערך לאחרונה על ידי jc324118983
      #10

      @AVIVI יש שתי אופציות להקטין קובץ תמונה לדוגמה יש אופציה פשוט להוריד את כמות הפיקסלים (להקטין את התמונה) ויש בצורה חכמה שאני לא מבין איך זה עובד אבל מוריד משמעותי מבלי לפגוע באיכות

      A תגובה 1 תגובה אחרונה
      0
      • J jc324118983

        @AVIVI יש שתי אופציות להקטין קובץ תמונה לדוגמה יש אופציה פשוט להוריד את כמות הפיקסלים (להקטין את התמונה) ויש בצורה חכמה שאני לא מבין איך זה עובד אבל מוריד משמעותי מבלי לפגוע באיכות

        A מנותק
        A מנותק
        AVIVI
        כתב נערך לאחרונה על ידי
        #11

        @jc324118983 לדעתי זה 'בצורה חכמה' או איך שתקרא לזה
        הקטנתי קובץ של 6.8 מ"ב ל 334 ק"ב וכמעט שלא ראיתי הבדל
        אין לי כרגע תמונה אם תרצה תעלה לכאן ואחזיר לך אותה לאחר המרה

        בעזרת השם נעשה ונצליח....

        תגובה 1 תגובה אחרונה
        2
        • י יאיר י.

          @שרגא-תכנות @avivi
          שאבין, מה זה שונה מפורמט פקטורי החינמי?
          והאם יש בזה דברים יותר מיוחדים משם?

          CSS 0C מנותק
          CSS 0C מנותק
          CSS 0
          כתב נערך לאחרונה על ידי CSS 0
          #12

          @יאיר-י.

          זה כבר נהיה מעצבן, מישהו מעלה תוכנה ומייד השאלה הראשונה זה - "מה זה שונה מ..." התשובה היא פשוטה, לא שונה בכלום, לא רוצה אל תשתמש!

          @jc324118983 כתב בלהורדה | 'תופס תמורתו' ממיר ומקטין קבצים קל, מהיר, וחינמי!💥:

          יש בצורה חכמה שאני לא מבין איך זה עובד

          @AVIVI כתב בלהורדה | 'תופס תמורתו' ממיר ומקטין קבצים קל, מהיר, וחינמי!💥:

          לדעתי זה 'בצורה חכמה'

          על מנת שזה יהיה בצורה חכמה לרוב צריך שיהיה מנוע AI שיסתכל על התמונה ולא ימחק סתם פיקסלים אלא ימחק את הפיקסלים בצורה שווה לכל פריט ככה שהוא לא סתם מקטין את הפיקסלים אלא מקטין את הדברים בתמונה ומאליו את הגודל והפיקסלים
          התוכנה הזו ככל הנראה לא עובדת בצורה שלא מורידה איכות,

          מה שבטוח, בטוח - התוכנה עצמה איכותית ביותר 😉

          לאתר שלי
          https://yosef-digital-vault.base44.app/

          א י 2 תגובות תגובה אחרונה
          2
          • CSS 0C CSS 0

            @יאיר-י.

            זה כבר נהיה מעצבן, מישהו מעלה תוכנה ומייד השאלה הראשונה זה - "מה זה שונה מ..." התשובה היא פשוטה, לא שונה בכלום, לא רוצה אל תשתמש!

            @jc324118983 כתב בלהורדה | 'תופס תמורתו' ממיר ומקטין קבצים קל, מהיר, וחינמי!💥:

            יש בצורה חכמה שאני לא מבין איך זה עובד

            @AVIVI כתב בלהורדה | 'תופס תמורתו' ממיר ומקטין קבצים קל, מהיר, וחינמי!💥:

            לדעתי זה 'בצורה חכמה'

            על מנת שזה יהיה בצורה חכמה לרוב צריך שיהיה מנוע AI שיסתכל על התמונה ולא ימחק סתם פיקסלים אלא ימחק את הפיקסלים בצורה שווה לכל פריט ככה שהוא לא סתם מקטין את הפיקסלים אלא מקטין את הדברים בתמונה ומאליו את הגודל והפיקסלים
            התוכנה הזו ככל הנראה לא עובדת בצורה שלא מורידה איכות,

            מה שבטוח, בטוח - התוכנה עצמה איכותית ביותר 😉

            א מנותק
            א מנותק
            ארי
            כתב נערך לאחרונה על ידי
            #13

            @CSS-0 לא קשור לAI זה קיים עוד לפניו
            תראה לדוגמה
            Squoosh — מנובמבר 2018
            TinyPNG — מ2013/2014
            Caesium — מ2010/2015

            CSS 0C תגובה 1 תגובה אחרונה
            0
            • א ארי

              @CSS-0 לא קשור לAI זה קיים עוד לפניו
              תראה לדוגמה
              Squoosh — מנובמבר 2018
              TinyPNG — מ2013/2014
              Caesium — מ2010/2015

              CSS 0C מנותק
              CSS 0C מנותק
              CSS 0
              כתב נערך לאחרונה על ידי CSS 0
              #14

              @ארי כתב בלהורדה | 'תופס תמורתו' ממיר ומקטין קבצים קל, מהיר, וחינמי!💥:

              א קשור לAI זה קיים עוד לפניו

              אתה מדבר על AI של צ'אט, AI של הגדלת הקטנת תמונות, זיהוי פנים, זיהוי דיבור וכ"ו היו לפני

              Deep Blue של IBM ניצח את Garry Kasparov בשחמט ב־1997...

              לאתר שלי
              https://yosef-digital-vault.base44.app/

              תגובה 1 תגובה אחרונה
              0
              • A AVIVI התייחס לנושא זה
              • A מנותק
                A מנותק
                AVIVI
                כתב נערך לאחרונה על ידי AVIVI
                #15

                בס"ד
                כ"ח אייר - גירסה חדשה 1.7
                פירוט למעלה

                בעזרת השם נעשה ונצליח....

                H תגובה 1 תגובה אחרונה
                0
                • CSS 0C CSS 0

                  @יאיר-י.

                  זה כבר נהיה מעצבן, מישהו מעלה תוכנה ומייד השאלה הראשונה זה - "מה זה שונה מ..." התשובה היא פשוטה, לא שונה בכלום, לא רוצה אל תשתמש!

                  @jc324118983 כתב בלהורדה | 'תופס תמורתו' ממיר ומקטין קבצים קל, מהיר, וחינמי!💥:

                  יש בצורה חכמה שאני לא מבין איך זה עובד

                  @AVIVI כתב בלהורדה | 'תופס תמורתו' ממיר ומקטין קבצים קל, מהיר, וחינמי!💥:

                  לדעתי זה 'בצורה חכמה'

                  על מנת שזה יהיה בצורה חכמה לרוב צריך שיהיה מנוע AI שיסתכל על התמונה ולא ימחק סתם פיקסלים אלא ימחק את הפיקסלים בצורה שווה לכל פריט ככה שהוא לא סתם מקטין את הפיקסלים אלא מקטין את הדברים בתמונה ומאליו את הגודל והפיקסלים
                  התוכנה הזו ככל הנראה לא עובדת בצורה שלא מורידה איכות,

                  מה שבטוח, בטוח - התוכנה עצמה איכותית ביותר 😉

                  י מנותק
                  י מנותק
                  יאיר י.
                  כתב נערך לאחרונה על ידי יאיר י.
                  #16

                  @CSS-0 כתב בלהורדה | 'תופס תמורתו' ממיר ומקטין קבצים קל, מהיר, וחינמי!💥:

                  זה כבר נהיה מעצבן, מישהו מעלה תוכנה ומייד השאלה הראשונה זה - "מה זה שונה מ..." התשובה היא פשוטה, לא שונה בכלום, לא רוצה אל תשתמש!

                  לא הבנתי על מה אתה מדבר
                  אני, כמו כל אדם, מעוניין להבין מה החידוש שהוא הביא כאן שלא היה קיים בשוק עד עכשיו
                  אווילי לחשוב שבן אדם עבד על משהו, ומבזבז מזמנו על דבר שלא מקדם אף אדם, בשום דבר!!

                  כל אדם שבונה תוכנה או משהו בסגנון התכוון לשפר את המהירות, לתקן פגם קיים בתוכנה ההיא, לשדרג מראה וכו'

                  בתקווה להבנה

                  תגובה 1 תגובה אחרונה
                  1
                  • A AVIVI

                    בס"ד
                    כ"ח אייר - גירסה חדשה 1.7
                    פירוט למעלה

                    H מנותק
                    H מנותק
                    HGEC HARTK
                    כתב נערך לאחרונה על ידי
                    #17

                    @AVIVI
                    גירסת 1.7 חסום בנטפרי
                    בתודה מראש

                    A תגובה 1 תגובה אחרונה
                    0
                    • ק מנותק
                      ק מנותק
                      קפטן מרשמלו
                      כתב נערך לאחרונה על ידי
                      #18

                      לא צריך בינה מלאכותית בשביל לכווץ קבצים בלי להוריד להם כמעט את האיכות

                      יש כל מיני דרכים לעשות את זה לתמונות
                      אחת מהם היא במקום לכתוב בזיכרון מה הערך של כל פיקסל בתמונה כותבים את ההפרשים ביניהם ובגלל שבתמונות בדרך כלל אין הפרשים גדולים במקום שכל פיקסל יתפוס בזיכרון נגיד שלוש ספרות שמייצגות בין אחד לאלף הוא השתמש בשתי ספרות שמייצגות בין אחד ל-100 כל
                      במקום בתמונה שבו היה הפרש גדול יותר למשל אם היה משהו שחור על רקע לבן אז הקו ביניהם יהיה יותר מטושטש אבל חוץ מזה כל התמונה תשמור על אותה איכות

                      תגובה 1 תגובה אחרונה
                      1
                      • H HGEC HARTK

                        @AVIVI
                        גירסת 1.7 חסום בנטפרי
                        בתודה מראש

                        A מנותק
                        A מנותק
                        AVIVI
                        כתב נערך לאחרונה על ידי
                        #19

                        @HGEC-HARTK נשלח לבדיקה

                        בעזרת השם נעשה ונצליח....

                        א תגובה 1 תגובה אחרונה
                        0
                        • A AVIVI

                          בס"ד

                          הדגשה כרגיל- טוב.. מי שלא אוהב תוכנות שנוצרו עם AI נא לדלג לשרשור אחר שכוייח מראש!

                          תופס תמורתו

                          כרגיל כל דבר טוב מתחיל כי נמאס מה שהיה עד עכשיו (מי הזיז את ה(ג)בינה שלי?)

                          בס"ד עלה בדעתי ליצור תוכנה להמרת קבצים ע"י הגבינה המלאכותית
                          ובמיוחד להקטנת קבצים (שם החל הרעיון... נמאס לי להעלות חמש תמונות למייל במשך שעה רק בגלל שהמצלמה שלי טובה ב"ה...)
                          תמיד יש לנו את הוידאו ששוקל טון ואת התמונה של הנוף ששוקלת 15 מ"ב ואת השיר שתופס הרבה מקום
                          לשם כך ולעוד דברים נוספים נועד תופס תמורתו
                          התוכנה להמרת קבצים בשניות שבע"ה תקל לנו מעט את החיים
                          התוכנה כרגע ממירה וידאו אודיו ותמונה
                          פותחים את התוכנה, בוחרים את הקובץ והיפ הופ הקובץ נחתך למחצה שליש ורביע לפי בחירתכם!
                          הקבצים נשמרים בתקייה חדשה בשם 'קבצים_שהומרו' או בכל שפה אחרת שבחרתם כשפת התוכנה
                          התוכנה תומכת בפורמטים המצויים
                          התוכנה תומכת גם בהמרת תמונה ל- pdf ובהמרת וידאו לקובץ gif

                          הערה חשובה לגבי הוידאו: כרגע לוקח קצת הרבה זמן לתוכנה להמיר קבצי וידאו אולם התוצאה שווה ככל שבדקתי!
                          המרתי איתה קובץ וידאו במשקל 67 מ"ב ולאחר ההמרה (כ-5 דק' מעבד i5) התקבל קובץ במשקל 18.7 מ"ב ללא פגיעה באיכות הנראית לעין!!!
                          רק ההמרה לקחה לי הרבה מהמעבד אז שימו לב! בגרסה הבאה אשתדל שתהיה יותר הגבלה במעבד בע"ה

                          התוכנה קצת בוסרית בע"ה אני עובד לשפרה ולשכללה עדכונים יובאו כאן בהמשך

                          להורדה👇
                          כ"ח אייר - גירסה חדשה 1.7
                          להוריד כוכביות מהקישור

                          TofesTmurato1.7v

                          • תיקון באג ותמיכה בהמרה לגרסאות שונות
                          • שמירת הגדרות משתמש
                          • הוספת מצב יום/לילה
                          • שיפור התרגום והוספת שפה😉
                          • לא תוקן עדיין הגבלת מעבד

                          גרסאות קודמות בספויילר

                          TofesTmurato 1v

                          קוד פתוח למעוניינים


                          לא לצחוק על הטריק של השפה... אני לא מתכנת!

                          # -*- coding: utf-8 -*-
                          import sys, os, threading, json, tkinter as tk
                          from tkinter import filedialog, messagebox
                          from PIL import Image
                          import customtkinter as ctk
                          
                          try:
                              from moviepy.editor import VideoFileClip, AudioFileClip
                          except Exception:
                              print("Missing moviepy. Install with: pip install moviepy")
                              sys.exit(1)
                          
                          def resource_path(relative_path):
                              try:
                                  base_path = sys._MEIPASS
                              except Exception:
                                  base_path = os.path.abspath(".")
                              return os.path.join(base_path, relative_path)
                          
                          SETTINGS_FILE = os.path.join(os.getenv('APPDATA', os.path.expanduser('~')), 'tmurato_settings.json')
                          
                          MEDIA_TYPES = {
                              'Video': ['MP4', 'GIF', 'MOV', 'MKV', 'WEBM', 'AVI'],
                              'Audio': ['MP3', 'WAV', 'M4A', 'FLAC', 'AAC'],
                              'Image': ['JPG', 'JPEG', 'PNG', 'WEBP', 'PDF', 'ICO', 'BMP']
                          }
                          
                          TRANSLATIONS = {
                              'עברית': {
                                  'title': 'תופס תמורתו - ממיר מקצועי', 'select': 'קבצים בחר', 'convert': 'הכל המר',
                                  'low': 'נמוכה', 'med': 'בינונית', 'high': 'גבוהה', 'original': 'מקור',
                                  'files_sel': 'נבחרו {} קבצים', 'done': '!בסייעתא דשמייא ההמרה הסתיימה בהצלחה', 
                                  'type': ':הקובץ סוג', 'fmt': ':פורמט', 'out_folder': 'קבצים שהומרו'
                              },
                              'English': {
                                  'title': 'Tofes Tmurato - Converter', 'select': 'Select Files', 'convert': 'Convert All',
                                  'low': 'Low', 'med': 'Med', 'high': 'High', 'original': 'Original',
                                  'files_sel': '{} files selected', 'done': 'Done!', 
                                  'type': 'Type:', 'fmt': 'Format:', 'out_folder': 'Converted files'
                              },
                              'יידיש': {
                                  'title': 'תופס תמורתו - מעדיאַ קאָנוערטער', 'select': 'קלייַבן טעקעס', 'convert': 'קאָנווערט אַלץ',
                                  'low': 'נידעריק', 'med': 'מיטל', 'high': 'הויך', 'original': 'מקור',
                                  'files_sel': '{} טעקעס אויסגעקליבן', 'done': '!בסייעתא דשמייא געענדיקט הצלחה', 
                                  'type': 'טיפּ', 'fmt': 'פֿאָרמאַט', 'out_folder': 'קאָנווערטירטע טעקעס'
                              },
                              'ארמית': {
                                  'title': 'תופס תמורתו - מחלף זמניא', 'select': 'מניינא גבי', 'convert': 'כולא חלף',
                                  'low': 'זוטא', 'med': 'ממוצע', 'high': 'רבא', 'original': 'עיקרא',
                                  'files_sel': 'גבייתא {} מניינין', 'done': '!בסייעתא דשמייא חילוף זמניא אשתלם שפיר', 
                                  'type': ':זניא', 'fmt': ':טופסא', 'out_folder': 'מניינין דאשתני'
                              }
                          }
                          
                          class ConverterApp(ctk.CTk):
                              def __init__(self):
                                  super().__init__()
                                  self.file_paths = []
                                  self.settings = self.load_settings()
                                  
                                  icon_path = resource_path("icon.ico")
                                  if os.path.exists(icon_path):
                                      self.iconbitmap(icon_path)
                                      self.after(200, lambda: self.iconbitmap(icon_path))
                          
                                  saved_lang = self.settings.get('lang', 'עברית')
                                  self.lang = saved_lang if saved_lang in TRANSLATIONS else 'עברית'
                                  
                                  self.setup_ui()
                                  self.apply_saved_settings()
                          
                              def load_settings(self):
                                  if os.path.exists(SETTINGS_FILE):
                                      try:
                                          with open(SETTINGS_FILE, 'r') as f: return json.load(f)
                                      except: pass
                                  return {'lang': 'עברית'}
                          
                              def save_settings(self):
                                  self.settings.update({
                                      'lang': self.lang, 'quality': self.seg_quality.get(), 
                                      'mtype': self.opt_type.get(), 'fmt': self.opt_fmt.get(), 
                                      'theme': ctk.get_appearance_mode()
                                  })
                                  with open(SETTINGS_FILE, 'w') as f: json.dump(self.settings, f)
                          
                              def apply_saved_settings(self):
                                  self.change_lang(self.lang)
                                  self.opt_type.set(self.settings.get('mtype', 'Video'))
                                  self.update_formats(self.opt_type.get())
                                  self.opt_fmt.set(self.settings.get('fmt', 'MP4'))
                                  if 'theme' in self.settings: ctk.set_appearance_mode(self.settings['theme'])
                          
                              def setup_ui(self):
                                  self.geometry("450x650")
                                  self.title("Tofes Tmurato 1.7")
                                  
                                  self.header = ctk.CTkFrame(self, fg_color="transparent")
                                  self.header.pack(pady=10, fill="x", padx=20)
                                  
                                  self.theme_btn = ctk.CTkButton(self.header, text="🌓", width=40, command=self.toggle_theme)
                                  self.theme_btn.pack(side="left")
                                  
                                  self.lang_menu = ctk.CTkOptionMenu(self.header, values=list(TRANSLATIONS.keys()), command=self.change_lang, width=100)
                                  self.lang_menu.pack(side="right")
                          
                                  self.lbl_title = ctk.CTkLabel(self, text="", font=("Arial", 22, "bold"))
                                  self.lbl_title.pack(pady=10)
                          
                                  self.btn_select = ctk.CTkButton(self, text="", command=self.select_files)
                                  self.btn_select.pack(pady=10)
                          
                                  self.lbl_count = ctk.CTkLabel(self, text="", font=("Arial", 14))
                                  self.lbl_count.pack(pady=5)
                          
                                  self.sett_frame = ctk.CTkFrame(self)
                                  self.sett_frame.pack(pady=10, padx=30, fill="both")
                          
                                  self.lbl_type = ctk.CTkLabel(self.sett_frame, text="")
                                  self.lbl_type.pack()
                                  self.opt_type = ctk.CTkOptionMenu(self.sett_frame, values=list(MEDIA_TYPES.keys()), command=self.update_formats)
                                  self.opt_type.pack(pady=5)
                          
                                  self.lbl_fmt = ctk.CTkLabel(self.sett_frame, text="")
                                  self.lbl_fmt.pack()
                                  self.opt_fmt = ctk.CTkOptionMenu(self.sett_frame, values=[])
                                  self.opt_fmt.pack(pady=5)
                          
                                  self.seg_quality = ctk.CTkSegmentedButton(self.sett_frame)
                                  self.seg_quality.pack(pady=20, padx=10, fill="x")
                          
                                  self.progress_bar = ctk.CTkProgressBar(self)
                                  self.progress_bar.pack(pady=10, padx=50, fill="x")
                                  self.progress_bar.set(0)
                          
                                  self.btn_convert = ctk.CTkButton(self, text="", fg_color="#28a745", command=self.start_conversion, height=45)
                                  self.btn_convert.pack(pady=20)
                          
                              def toggle_theme(self):
                                  new_mode = "light" if ctk.get_appearance_mode() == "Dark" else "dark"
                                  ctk.set_appearance_mode(new_mode)
                                  self.save_settings()
                          
                              def change_lang(self, v):
                                  self.lang = v
                                  t = TRANSLATIONS[v]
                                  self.lbl_title.configure(text=t['title'])
                                  self.btn_select.configure(text=t['select'])
                                  self.lbl_type.configure(text=t['type'])
                                  self.lbl_fmt.configure(text=t['fmt'])
                                  self.btn_convert.configure(text=t['convert'])
                                  
                                  q_map = {"low": t['low'], "med": t['med'], "high": t['high'], "original": t['original']}
                                  self.seg_quality.configure(values=list(q_map.values()))
                                  self.seg_quality.set(t['original'])
                                  
                                  self.update_count_label()
                                  self.save_settings()
                          
                              def update_count_label(self):
                                  t = TRANSLATIONS[self.lang]
                                  self.lbl_count.configure(text=t['files_sel'].format(len(self.file_paths)))
                          
                              def update_formats(self, mtype):
                                  self.opt_fmt.configure(values=MEDIA_TYPES[mtype])
                                  self.opt_fmt.set(MEDIA_TYPES[mtype][0])
                                  self.save_settings()
                          
                              def select_files(self):
                                  paths = filedialog.askopenfilenames()
                                  if paths:
                                      self.file_paths = list(paths)
                                      self.update_count_label()
                                      
                                      ext = os.path.splitext(paths[0])[1][1:].upper()
                                      for mtype, exts in MEDIA_TYPES.items():
                                          if ext in exts or (ext == 'JPG' and 'JPEG' in exts):
                                              self.opt_type.set(mtype)
                                              self.update_formats(mtype)
                                              break
                          
                              def start_conversion(self):
                                  if not self.file_paths: return
                                  self.save_settings()
                                  self.btn_convert.configure(state="disabled")
                                  threading.Thread(target=self.run_process, daemon=True).start()
                          
                              def run_process(self):
                                  for i, path in enumerate(self.file_paths):
                                      self.convert_logic(path)
                                      self.progress_bar.set((i + 1) / len(self.file_paths))
                                  self.btn_convert.configure(state="normal")
                                  self.after(0, lambda: messagebox.showinfo("V", TRANSLATIONS[self.lang]['done']))
                          
                              def convert_logic(self, in_p):
                                  ext = self.opt_fmt.get().lower()
                                  mtype = self.opt_type.get()
                                  
                                  source_dir = os.path.dirname(in_p)
                                  folder_name = TRANSLATIONS[self.lang]['out_folder']
                                  target_dir = os.path.join(source_dir, folder_name)
                                  
                                  if not os.path.exists(target_dir):
                                      os.makedirs(target_dir)
                                      
                                  out_p = os.path.join(target_dir, f"{os.path.splitext(os.path.basename(in_p))[0]}.{ext}")
                                  
                                  # זיהוי רמת האיכות שנבחרה
                                  t = TRANSLATIONS[self.lang]
                                  q_val = self.seg_quality.get()
                                  q_key = next((k for k in ['low', 'med', 'high', 'original'] if t[k] == q_val), 'original')
                                  
                                  # הגדרות פרמטרים לפי רמה
                                  q_cfg = {
                                      'low':      {'img': 30, 'vid': '600k',  'aud': '64k'},
                                      'med':      {'img': 60, 'vid': '1500k', 'aud': '128k'},
                                      'high':     {'img': 85, 'vid': '4000k', 'aud': '256k'},
                                      'original': {'img': 95, 'vid': None,    'aud': None}
                                  }[q_key]
                          
                                  try:
                                      if mtype == 'Image':
                                          with Image.open(in_p) as img:
                                              if ext in ['jpg', 'jpeg'] and img.mode in ("RGBA", "P"):
                                                  img = img.convert("RGB")
                                              if ext == 'pdf': img.convert("RGB").save(out_p, "PDF")
                                              else: img.save(out_p, quality=q_cfg['img'], optimize=True)
                                      elif mtype == 'Video':
                                          with VideoFileClip(in_p) as clip:
                                              params = {"codec": "libx264", "logger": None}
                                              if q_cfg['vid']: params["bitrate"] = q_cfg['vid']
                                              clip.write_videofile(out_p, **params)
                                      elif mtype == 'Audio':
                                          with AudioFileClip(in_p) as clip:
                                              params = {"logger": None}
                                              if q_cfg['aud']: params["bitrate"] = q_cfg['aud']
                                              clip.write_audiofile(out_p, **params)
                                  except Exception as e: print(f"Error: {e}")
                          
                          if __name__ == "__main__":
                              app = ConverterApp()
                              app.mainloop()
                          

                          צילום מסך

                          468d810c-a457-4c4d-bff6-df3eacb0cc60-image.png


                          נ.ב. שימו לב לפני הורדת התוכנה אם אתם שולחים תמונות להדפסה וכו' נא לא להשתמש בתוכנה בד"כ זה מוריד באיכות שלשיתוף תמונות במסך הביתי זה לא פוגע אבל בהדפסה זה פוגע לפעמים


                          וכמובן כמו תמיד אם יש לכם הערות לשיפור ושידרוג או שיש לכם ידע בתכנות ואתם רוצים לשפר אשמח לשמוע

                          אה.. ואל תשכחו את התוכנה השנייה שממש נמצאת כאן וממש עוזרת
                          https://mitmachim.top/topic/94724/להורדה-תוכנה-קטנה-לשליטה-בתוכנות-מסך-מלא-וסגירה-בכח/6

                          EBAE מנותק
                          EBAE מנותק
                          EBA
                          מדריכים
                          כתב נערך לאחרונה על ידי
                          #20

                          @AVIVI לפי השם כבר הייתי בטוח שזו תוכנה של @es0583292679 ...

                          התקנת מולטימדיות, חסימות וסימים מוזלים
                          050-4133851

                          A תגובה 1 תגובה אחרונה
                          2
                          • EBAE EBA

                            @AVIVI לפי השם כבר הייתי בטוח שזו תוכנה של @es0583292679 ...

                            A מנותק
                            A מנותק
                            AVIVI
                            כתב נערך לאחרונה על ידי AVIVI
                            #21

                            @EBA

                            לא חושב לנסות לחקות את אליעזר סילבר @es0583292679 האלוף!..
                            רעיון השם היה משום שנמאס לי שמתביישים במושגים שיש לנו
                            קצת ויגבה ליבו!
                            ואם פיתחתי תוכנה לציבור יראי ה' למה ששם התוכנה לא יתחבר אליהם?
                            אה.. וגם השפה החדשה..

                            בעזרת השם נעשה ונצליח....

                            תגובה 1 תגובה אחרונה
                            1
                            • A AVIVI

                              @HGEC-HARTK נשלח לבדיקה

                              א מנותק
                              א מנותק
                              אשריך עליך
                              כתב נערך לאחרונה על ידי
                              #22

                              @AVIVI

                              פעם הבאה פשוט תפרסם את הקישור עם כוכביות (כמו שכולם עושים) ואז יצטרכו להוריד את הכוכביות
                              וזה לא ייחסם ע"י נטפרי

                              A תגובה 1 תגובה אחרונה
                              1
                              • א אשריך עליך

                                @AVIVI

                                פעם הבאה פשוט תפרסם את הקישור עם כוכביות (כמו שכולם עושים) ואז יצטרכו להוריד את הכוכביות
                                וזה לא ייחסם ע"י נטפרי

                                A מנותק
                                A מנותק
                                AVIVI
                                כתב נערך לאחרונה על ידי
                                #23

                                @אשריך-עליך תודה שהזכרתני!
                                עודכן!

                                בעזרת השם נעשה ונצליח....

                                תגובה 1 תגובה אחרונה
                                1

                                • התחברות

                                • אין לך חשבון עדיין? הרשמה

                                • התחברו או הירשמו כדי לחפש.
                                • פוסט ראשון
                                  פוסט אחרון
                                0
                                • חוקי הפורום
                                • פופולרי
                                • לא נפתר
                                • משתמשים
                                • חיפוש גוגל בפורום
                                • צור קשר