דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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 כותבים 262 צפיות 18 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש שרגא תכנות

    @AVIVI חסום להורדה בנטפרי, תודה

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

    @שרגא-תכנות נשלח פנייה תודה על העדכון!

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

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

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

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

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

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

      תגובה 1 תגובה אחרונה
      1
      • J מנותק
        J מנותק
        jc324118983
        כתב נערך לאחרונה על ידי
        #8

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

        A תגובה 1 תגובה אחרונה
        0
        • 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
                                      • חוקי הפורום
                                      • פופולרי
                                      • לא נפתר
                                      • משתמשים
                                      • חיפוש גוגל בפורום
                                      • צור קשר