JPG-დან PNG-ში გადაყვანა: ბრაუზერში, მონაცემთა გაჟონვის გარეშე
JPG (JPEG) და PNG (Portable Network Graphics) ორი ფუნდამენტურად განსხვავებული მიდგომაა ციფრული გამოსახულების შენახვისთვის. JPG იყენებს lossy (განადგურებით) შეკუმშვას, PNG – lossless (ზარალის გარეშე). JPG-ს არ გააჩნია alpha channel (გამჭვირვალობის არხი); PNG-ს მხარდაჭერა აქვს 8-ბიტიანი alpha transparency-სთვის. JPG-ის ხარისხის მაჩვენებელი (quality) 0-დან 100-მდე იცვლება; PNG-ს ასეთი მაჩვენებელი არ გააჩნია. JPG-დან PNG-ში გადაყვანისას ფაილის ზომა მნიშვნელოვნად იზრდება, განსაკუთრებით ფოტოგრაფიისთვის, რადგან lossless-ის შეკუმშვა მთელ ინფორმაციას ინარჩუნებს, მაშინ როცა JPG-მ უკვე გააუქმა ზუსტი დეტალები. PNG-ს არ შეუძლია იმ დეტალების აღდგენა, რომელიც JPG-მა უკვე დაკარგა – შედეგია უფრო დიდი ფაილი იდენტური ხარისხით.
1. JPG-ის Lossy შეკუმშვის მექანიზმი
JPG-ის lossy-ის საფუძველია DCT (Discrete Cosine Transform) – გამოსახულების დაყოფა 8x8 ბლოკებად, ფერის ინფორმაციის chroma subsampling (4:2:0 ან 4:2:2) – ანუ ქრომატული ინფორმაციის მხოლოდ ნახევარი ან მეოთხედი ინახება, ხოლო ლუმინანსი (სიკაშკაშე) – სრულად. DCT-შემდეგ ხდება quantization – ბლოკის ბრტყელი ან მცირეამპლიტუდა კოეფიციენტები ნულდება ან მრგვალდება. მაგალითად, 80% quality-ზე JPEG-ის "quality" ფაქტიურად quantization stepping-ს ზრდას/კლებას ნიშნავს. 100% quality-ც კი lossless-ია? – 100% (QF=100) ინარჩუნებს ყველა DCT კოეფიციენტს, მაგრამ chroma subsampling (თუ 4:2:0) მაინც იწვევს loss. PNG, თავის მხრივ, იყენებს DEFLATE (ZIP) lossless-ის შეკუმშვას – ის აიგივებს იგივე ბაიტების ჯაჭვებს, ვიდრე კარგავს ინფორმაციას.
Generation loss: JPG-ის ყოველი re-save (ხელახალი შენახვა) იწვევს quantization-ის ისევ გამოყენებას. 10-ჯერ re-save-ისას 80% quality-ზე – ხარისხი 80%-დან 50%-მდე ეცემა, PNG-სთან – ნულოვანი ზრდა.
კონკრეტული მაგალითი: 24-ბიტიანი RGB JPG (8x8 DCT, 4:2:0 chroma) – 3000x4000 px = 34.4 MP – JPG ჩვეულებრივ 2-4 MB, PNG (24-ბიტიანი ან 32-ბიტიანი alpha-ს გარეშე) – 10-20 MB.
2. ბრაუზერში – Client-Side გადაყვანა
ამ გვერდის ყველა გარდაქმნა ხორციელდება თქვენს ბრაუზერში. თქვენი ბრაუზერი შლის JPG-ს ნედლ პიქსელებად და ხელახლა აკოდირებს ამ პიქსელებს PNG ფორმატში მოწყობილობაზე, შემდეგ კი გთავაზობთ PNG-ს ჩამოსატვირთად. არც ერთი ბაიტი თქვენი ორიგინალური სურათის ან გადაყვანის შედეგი არ ტოვებს მოწყობილობას. მაქსიმალური ფაილის რაოდენობა ნაჩვენები ინტერფეისში – "Choose up to ‹max› images at a time".
Edge case: თუ ფაილი ვერ იხსნება (corrupted ან empty), ბრაუზერი გამოაქვს "ფაილის სურათად გახსნა ვერ მოხერხდა. შესაძლოა ის დაზიანებულია, ცარიელია ან არ წარმოადგენს სურათს." ან "Conversion failed. Try a different image or format."
ID: "Download all (.zip)" – ორი ან მეტი ფაილის შემთხვევაში, ყველა PNG-ს zip-ში შეფუთვა.
3. ფაილის ზომა: 5-15x ზრდა
JPEG-სთვის (quality 80%, chroma 4:2:0) – 24-ბიტიანი RGB PNG-ზე გადაყვანისას, ფაილის ზომა 3-5-დან 10-20 MB-მდე იზრდება. PNG-ს lossless-ის შეკუმშვა, DEFLATE (LZSS + Huffman), ვერ ბაძავს DCT-ის quantization-ის გამო: ისე 13-75% compression ratio-ს მიიღებს JPEG-ის 1-2% ratio-ს წინააღმდეგ, ფოტოებისთვის. მაგალითი: 1920x1080 JPG (80%) – 400 KB; იგივე PNG – 3.5 MB (1050% ზრდა). Photoshop-ის Save for Web: Photos-ს/Web-ს, PNG 24.
ცხრილი: JPG vs. PNG
| პარამეტრი | JPG | PNG |
|---|---|---|
| Compression | Lossy, DCT + quantization | Lossless, DEFLATE |
| Channels | RGB (3) – no alpha | RGB + alpha (4) ან grayscale + alpha (2) |
| Quality slider | 40–100 (default 92) | None – full pixel data |
| Alpha | No | Yes (8-bit, 256 levels) |
| File size (photo) | 2–5 MB (24 MP) | 10–25 MB (24 MP) |
Edge case: JPG-ს metadata (EXIF, XMP, ICC profile) PNG-ში გადატანა ხდება წესით sRGB-ს გამოყენებით, მაგრამ ICC v4 profiles – ზოგი PNG-ს decoder იატაკს იღებს.
4. Alpha Transparency (Alpha Channel)
JPG-ს არ გააჩნია alpha channel. PNG-ს (PNG-24/PNG-32) alpha channel – 8-bit (256 levels), ინახავს pixel-ის opacity-ს 0-255. გამოყენების მაგალითი: ლოგოტიპი, იკონი, GUI element – იგივე PNG-32 RGBA.
Edge case: JPG-დან PNG-ში გადაყვანა აგენერირებს alpha channel-ს, იქნება 24-bit RGB PNG (alpha-ს გარეშე) ან 32-bit RGBA (alpha = 255-ის).
"Your browser doesn't support saving this format — used PNG instead" – ამ გვერდზე გამომავალი ყოველთვის PNG-ია, ამიტომ ამ შეტყობინებას აქ ვერასდროს ნახავთ.
5. Generation Loss: JPG vs. PNG
5.1 JPG-ს re-save-ის ციკლი: 100% quality => (DCT, quantization) => loss. 5 re-save-ის: 100% → 95% → 88% → 80% → 70% (subjective). PNG: 10x re-save => 0% loss.
5.2 Edge case: PNG-ს RGB-ზე conversion, PNG-ს deflate-ის გამოყენება – 0%
6. Raster vs. Vector vs. Lossy
Page's "Direction note": "PNG cannot restore the detail the original JPG already discarded." – Misconception: "I'll convert JPG to PNG for 'quality'." – Result: larger file, no improvement.
Common mistake: Screenshot from website (JPG) => convert to PNG for transparency, but background is opaque white. Solution: gradient transparency.
Edge case: "ფაილის ეს ტიპი არ არის მხარდაჭერილი."
7. 10+ Common Use Cases & Expert Advice
- Case 1: Logo with drop shadow on transparent background – JPG (white background) → PNG (alpha).
- Case 2: Archiving digital art – PNG (lossless) vs JPG (generation loss).
- Case 3: Photo backup – JPG 100% + Chroma 4:4:4 vs PNG 24-bit. 100% JPG (4:4:4) ~ 30% smaller than PNG.
- Case 4: Web dev: PNG-8 (indexed) for low-color graphics, 256 colors.
FAQ
-
რატომ იზრდება ფაილის ზომა PNG-ში გადაყვანისას?
PNG lossless-ია – ის ინახავს ყველა pixel-ის 24/32-ბიტიან ინფორმაციას. JPG-მა უკვე გააუქმა chroma-ს ½ ან ¾ – PNG-ს თავიდან უწევს ყველაფრის „ნედლი“ სახით შენახვა. DEFLATE compression ratio (~1.5–2:1) ფოტოსთვის ვერ მიაღწევს 20:1 JPG-ს. -
შეიცვლება თუ არა ფერები JPG-დან PNG-ში?
თუ JPG იყენებდა sRGB-ს, PNG-ს 24-bit sRGB-ზე იგივე ფერები ექნება. ICC profile-ების (Adobe RGB, ProPhoto) იგნორირება – ხდება sRGB/Display P3-ზე clamping. EXIF-ის ნაწილი (orientation) ინახება. -
შეიძლება JPG-ის ხარისხის აღდგენა PNG-ით?
– არა. JPG-ის quantization-ის გამო დაკარგული chroma-ს/dekta-ლი 5% „blocky artifacts“ PNG-ს არაფერი „აღადგენს“. PNG მხოლოდ identically ინახავს lossy data-ს. -
რატომ არის „Larger“ label?
ინტერფეისი ყოველი ფაილისთვის აანგარიშებს – “Saved” (if smaller) ან “Larger” (if bigger). JPG-დან PNG-ზე, ფოტოების 99% larger-ია. მხოლოდ synthetic image (plain text, simple gradients) – PNG-ს DEFLATE-ს 0.5:1 ratio-ს. -
რამდენი ფაილის გადაყვანა შეიძლება?
"Choose up to 20 images at a time." -
რატომ ვერ იხსნება ფაილი?
"ფაილის სურათად გახსნა ვერ მოხერხდა. შესაძლოა ის დაზიანებულია, ცარიელია ან არ წარმოადგენს სურათს." – corrupted, 0 bytes, ან image format-ს MIME type (image/webp) იატაკს. check – extension vs. magic bytes.