YAML'dan JSON'a Dönüştürücü
YAML yapıştırın, anında JSON alın. Tarayıcınızda canlı dönüştürme. K8s manifest'leri, OpenAPI spesifikasyonları ve Helm değerleri desteklenir. %100 gizli.
Seçenekler · 2 boşluk
JSON nedir?
JSON (JavaScript Object Notation), RFC 8259 ve ECMA-404 olarak standartlaştırılmış, hafif, metin tabanlı bir veri değişim formatıdır. Dizeler, sayılar, boolean değerler, null, diziler ve nesneler olmak üzere altı veri türünü destekler; katı, minimal sözdizimi neredeyse tüm programlama dilleri, API'ler ve araç zincirleri tarafından yerel olarak ayrıştırılabilir. YAML, insan tarafından yazılan yapılandırma dosyaları için (Kubernetes manifest'leri, GitHub Actions, Ansible playbook'ları, Helm değerleri) tercih edilen format olsa da JSON, API'ler, otomasyon betikleri ve programlı veri işleme için evrensel makine tarafından okunabilir formattır.
Dolayısıyla YAML'ı JSON'a dönüştürmek, DevOps ve backend geliştirmede en yaygın görevlerden biridir — YAML yapılandırma dosyanız var; ancak bir REST API'ye beslemek, jq ile sorgulamak veya JavaScript araçlarıyla işlemek için JSON'a ihtiyacınız var.
Bu araç, tipik online dönüştürücülere kıyasla dört önemli farka sahiptir:
**1. Çok Belgeli YAML İşleme.** YAML, --- (belge başlangıç işareti) ile ayrılmış tek bir akışta birden fazla belgeyi destekler. Pek çok gerçek dünya YAML dosyası — bazı Kubernetes manifest'leri ve Ansible playbook'ları dahil — birden fazla belge içerir. Bu araç, { version: '1.2', merge: true } seçenekleriyle eemeli/yaml kütüphanesinin parseAllDocuments işlevini kullanır ve ilk belgeyi JSON olarak döndürür. Tüm belgelere ihtiyacınız varsa --- üzerinden bölün ve her birini ayrı ayrı dönüştürün.
**2. Çapa ve Takma Ad Genişlemesi.** YAML çapaları (&name) ve takma adları (*name), veri bloklarının yeniden kullanımına olanak tanır — JSON'da karşılığı olmayan güçlü bir YAML özelliği. Bu araç, tüm çapaları ve takma adları (birleştirme anahtarları: <<: *anchor dahil) tamamen genişletir; böylece JSON çıktısı referanssız, eksiksiz veri içerir. JSON'da referans sözdizimi bulunmadığından bu her zaman doğru dönüşümdür. Genişleme, döngüsel referanslara karşı koruma dahil eemeli/yaml kütüphanesi tarafından güvenle işlenir. Ters yönde kullanım için JSON'dan YAML'a Dönüştürücü aracımıza bakın.
**3. Yorum Kaybı — Eğitici Şeffaflık.** YAML, Kubernetes manifest'lerinde, Helm değerlerinde ve Ansible playbook'larında niyet belgelemek için sıkça kullanılan # yorumlarını destekler. JSON'da yorum sözdizimi yoktur; bu nedenle yorumlar dönüştürme sırasında kalıcı olarak kaybolur. Bu bir hata değil — temel bir format farkıdır. Bu araç bunu açıkça belirtir. Açıklamaları korumak istiyorsanız, bunları JSON alanları olarak kodlayın (_comment anahtarları veya özel bir metadata nesnesi) veya YAML'ı yetkili kaynak olarak saklayın. Format farkları hakkında daha fazla bilgi için YAML Norway Sorunu ve JSON-YAML Farkları makalemize bakın.
**4. %100 Tarayıcı Tabanlı Gizlilik.** Kubernetes sırları, veritabanı kimlik bilgileri, parolalı Helm değerleri ve dahili servis yapılandırmaları içeren YAML verileriniz tarayıcınızdan asla ayrılmaz. Hiçbir veri sunucuya gönderilmez. Bunu tarayıcınızın Ağ sekmesinde doğrulayabilirsiniz. JSON'a dönüştürdükten sonra aşağı akış işlemlerinde kullanmadan önce JSON Biçimlendirici aracımızla sonucu doğrulayıp biçimlendirebilirsiniz.
YAML'ın zenginliği (yorumlar, çapalar, çok belgeli destek, blok skalerler), okunabilirlik ve belgelemenin önemli olduğu insan tarafından yazılan yapılandırma dosyaları için mükemmeldir. JSON'un katılığı ve evrenselliği, birincil tüketicinin makine olduğu durumlarda daha iyi bir tercih yapar. Bu dönüştürücü iki dünyayı birbirine bağlar: insan sürdürülebilirliği için yapılandırmanızı YAML'da tutun, makine tarafından okunabilir değişim formatına ihtiyaç duyduğunuzda JSON'a dönüştürün.
// Convert YAML to JSON in Node.js using the eemeli/yaml library
import { parseAllDocuments } from 'yaml';
const yamlString = `apiVersion: apps/v1
kind: Deployment`;
// parseAllDocuments handles multi-document YAML (--- separator)
// version: '1.2' ensures yes/no are strings, not booleans
// merge: true expands anchor/alias merge keys (<<: *anchor)
const docs = parseAllDocuments(yamlString, { version: '1.2', merge: true });
// Take the first document (skip additional --- blocks)
const json = JSON.stringify(docs[0].toJSON(), null, 2);
console.log(json);
// {
// "apiVersion": "apps/v1",
// "kind": "Deployment"
// } Temel Özellikler
Canlı Dönüştürme
YAML yazarken veya yapıştırırken JSON çıktısı anında güncellenir — Dönüştür düğmesine gerek yok. Büyük girişler (>200KB) tarayıcının yanıt vermeye devam etmesi için otomatik olarak manuel moda geçer.
2 veya 4 Boşluk Girinti
JSON çıktısı için 2 boşluk ve 4 boşluk girinti arasında geçiş yapın. 2 boşluk, çoğu araç ve API için standarttır; 4 boşluk bazı stil kılavuzları ve düzenleyici varsayılanlarıyla uyumludur.
Çok Belgeli Destek
--- ile ayrılmış birden fazla belge içeren YAML akışlarını işler. İlk belge JSON'a dönüştürülüp döndürülür. Kubernetes çok kaynaklı dosyalar ve Ansible playbook'ları için kullanışlıdır.
Çapa ve Takma Ad Genişlemesi
YAML çapalarını (&name) ve takma adlarını (*name), birleştirme anahtarları (<<: *anchor) dahil tamamen genişletir. JSON çıktısı eksiksiz, referanssız veri içerir — JSON'da karşılığı bulunmadığından bu her zaman doğru davranıştır.
%100 Tarayıcı Tabanlı Gizlilik
Tüm dönüştürme, JavaScript kullanılarak tarayıcınızda yerel olarak çalışır. Sırlar, kimlik bilgileri ve üretim yapılandırmaları dahil YAML verileriniz hiçbir sunucuya gönderilmez, kayıt altına alınmaz ve saklanmaz.
K8s, Compose, Helm ve OpenAPI Dosyalarını Destekler
Gerçek dünya DevOps kullanım durumları için optimize edilmiştir: Kubernetes manifest'leri, Docker Compose yığınları, Helm chart değerleri, GitHub Actions iş akışları, OpenAPI spesifikasyonları ve Ansible playbook'ları — her biri için örnekler mevcuttur.
Örnekler
Kubernetes Manifest
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: production
labels:
app: my-app
version: 1.0.0
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:1.0.0
ports:
- containerPort: 8080
resources:
requests:
memory: 64Mi
cpu: 250m
limits:
memory: 128Mi
cpu: 500m Kubernetes Deployment manifest'ini YAML'dan JSON'a dönüştürün — jq ile sorgulamak, Kubernetes API'sine göndermek veya Terraform ve CI/CD pipeline'larına beslemek için kullanışlıdır
Docker Compose
version: '3.9'
services:
web:
image: nginx:1.25-alpine
ports:
- '80:80'
- '443:443'
environment:
NGINX_HOST: example.com
NGINX_PORT: '80'
depends_on:
- db
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: mydb
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata: {} Docker Compose YAML'ını programlı işleme, otomasyon betiklerine besleme veya JavaScript araçlarıyla işlemek için JSON'a dönüştürün
GitHub Actions İş Akışı
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run tests
run: pnpm test GitHub Actions iş akışı YAML'ını belirli alanları sorgulamak, yapıyı doğrulamak veya JSON kullanan API'lerle entegre etmek için JSON'a ayrıştırın
OpenAPI Spesifikasyonu
openapi: 3.0.3
info:
title: User API
version: 1.0.0
description: Manage application users
paths:
/users:
get:
summary: List users
operationId: listUsers
parameters:
- name: limit
in: query
schema:
type: integer
default: 20
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
/users/{id}:
get:
summary: Get user
operationId: getUser
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
components:
schemas:
User:
type: object
properties:
id:
type: string
name:
type: string
email:
type: string
format: email OpenAPI 3.0 spesifikasyonunu YAML'dan istemci kod üreteci, API test aracı veya programlı şema incelemesi için JSON'a dönüştürün
Helm values.yaml
replicaCount: 3
image:
repository: my-app
tag: 1.0.0
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
ingress:
enabled: true
className: nginx
hosts:
- host: my-app.example.com
paths:
- path: /
pathType: Prefix
resources:
requests:
memory: 64Mi
cpu: 250m
limits:
memory: 128Mi
cpu: 500m
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 10
targetCPUUtilizationPercentage: 80 Helm chart values.yaml dosyasını analiz, rapor oluşturma veya JSON yapılandırması bekleyen araçlara besleme için JSON'a dönüştürün
Ansible Playbook
- name: Configure web servers
hosts: webservers
become: true
vars:
http_port: 80
max_clients: 200
tasks:
- name: Ensure nginx is installed
ansible.builtin.package:
name: nginx
state: present
- name: Start nginx service
ansible.builtin.service:
name: nginx
state: started
enabled: true
- name: Copy nginx config
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
owner: root
group: root
mode: '0644'
notify:
- Restart nginx
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted Ansible playbook YAML'ını görev yapısını incelemek, yapılandırmaları denetlemek veya raporlama pipeline'larıyla entegre etmek için JSON'a ayrıştırın
Nasıl Kullanılır
- 1
YAML Verilerinizi Yapıştırın
YAML verilerinizi yukarıdaki giriş alanına girin veya yapıştırın. Kubernetes Deployment, Docker Compose dosyası veya Helm values.yaml gibi bir örnek denemek için «Örnek yükle» düğmesine de tıklayabilirsiniz.
- 2
Canlı JSON Çıktısını Görün
JSON, çıktı panelinde anında görünür. Hedef aracınızın gereksinimlerini karşılamak için Seçenekleri (girinti 2 veya 4 boşluk) ayarlayın.
- 3
Kopyalayın veya İndirin
JSON'u panoya almak için Kopyala'ya veya jq, API çağrıları ya da herhangi bir aşağı akış aracı için hazır olan .json dosyası olarak kaydetmek için İndir'e tıklayın.
Yaygın YAML Tuzakları
Sekme Girintisi
YAML spesifikasyonu girinti için sekme karakterlerini yasaklar — yalnızca boşluklara izin verilir. YAML'ınız sekme kullanan bir düzenleyicide yazılmış veya oradan kopyalanmışsa ayrıştırıcı hata fırlatır. Tüm sekme girintisini boşlukla değiştirin (her seviye için 2 veya 4 boşluk).
services: web: image: nginx:1.25-alpine
services:
web:
image: nginx:1.25-alpine Tutarsız Girinti
YAML, iç içe yapıyı tanımlamak için tutarlı girinti kullanır. Aynı blok içinde farklı sayıda boşluk karıştırmak (örneğin bir seviyede 2 boşluk, başka bir seviyede 3 boşluk) ayrıştırma hatalarına yol açar. Belgede her seviye aynı sayıda boşlukla girilmelidir.
metadata: name: my-app namespace: production
metadata: name: my-app namespace: production
Tırnak İçine Alınmamış Özel Karakterler
İki nokta (:), diyez (#), &, *, {, }, [, ], |, >, ! ve @ karakterleri YAML'da özel anlam taşır. Bunları değerlerde tırnaksız kullanmak ayrıştırma hatalarına veya beklenmedik davranışlara yol açabilir. Bu karakterleri içeren değerleri tek veya çift tırnak içine alın.
url: http://example.com:8080/api tag: #latest
url: 'http://example.com:8080/api' tag: '#latest'
Çapa Döngüsel Referansları
YAML teknik olarak kendine referans veren çapalara izin verir (döngüsel referanslar), ancak pratikte nadirdir. Döngüsel bir çapa ayrıştırıcının sonsuz genişleme döngüsüne girmesine yol açar. eemeli/yaml kütüphanesi takılı kalmak yerine döngüsel çapalar için hata tespit edip fırlatır.
# Circular anchor (rare but possible) base: &base parent: *base
# Use explicit fields instead of circular references base: parent: null
Çok Belgeli Karışıklık
Birden fazla --- ayırıcı içeren YAML dosyaları birden fazla belge içerir. Bu araç yalnızca ilk belgeyi JSON olarak döndürür. İkinci veya üçüncü --- sonrasındaki bir belgeden veri bekliyorsanız çıktıda görünmeyecektir. Tüm belgelere ihtiyacınız varsa YAML'ı --- üzerinden bölün ve her bölümü ayrı ayrı dönüştürün.
# Only the first document is converted apiVersion: v1 kind: ConfigMap --- apiVersion: v1 kind: Secret
# Convert each document separately apiVersion: v1 kind: ConfigMap
Yorum Kaybı
YAML # yorumlarını destekler; ancak JSON desteklemez. Tüm YAML yorumları dönüştürme sırasında kalıcı olarak kaybolur — bu bir araç sınırlaması değil, temel bir format farkıdır. JSON'da açıklamaları korumak istiyorsanız, bunları _comment anahtarı veya metadata nesnesi gibi özel bir alan olarak kodlayın.
# This comment will be lost replicas: 3 # scale this up for production
replicas: 3 _comment: scale this up for production
Yaygın Kullanım Senaryoları
- Kubernetes Manifest Analizi
- Kubernetes YAML manifest'lerini jq ile sorgulamak, Kubernetes REST API'sine göndermek, Terraform veri kaynaklarında işlemek veya JSON bekleyen CI/CD pipeline'larına beslemek için JSON'a dönüştürün.
- Docker Compose'dan JavaScript Araçlarına
- Docker Compose YAML'ını otomasyon betiklerinde, bağımlılık grafiklerinde veya Node.js araçlarında kullanmak için servis tanımlarını, imaj adlarını, port eşlemelerini ve ortam değişkenlerini JSON'a çıkarmak üzere ayrıştırın.
- GitHub Actions API Entegrasyonu
- GitHub Actions iş akışı YAML'ını yapıyı programlı olarak doğrulamak, iş ve adım tanımlarını çıkarmak veya JSON iş akışı spesifikasyonu kabul eden CI/CD API'leriyle entegre etmek için JSON'a dönüştürün.
- OpenAPI'den İstemci Kod Üretimine
- Pek çok kod üreteci (openapi-generator, swagger-codegen, oazapfts) her iki formattaki OpenAPI spesifikasyonlarını kabul eder. Bir araç özellikle JSON girişi gerektirdiğinde veya JSON Schema doğrulayıcılarıyla incelemeniz gerektiğinde YAML spesifikasyonunuzu JSON'a dönüştürün.
- Helm Değerleri Analizi
- Helm chart values.yaml dosyasını raporlar oluşturmak, ortamlar arasında değerleri karşılaştırmak, politika uygulama araçlarına beslemek veya JSON yapılandırması bekleyen otomasyon araçlarıyla işlemek için JSON'a dönüştürün.
- JSON Tabanlı Araçlara Yapılandırma Geçişi
- Uygulama yapılandırmasını YAML'dan (altyapı araçlarında yaygın) JavaScript ortamları, REST API'leri, AWS AppConfig, Azure App Configuration veya yapılandırmayı JSON olarak saklayan herhangi bir sistem için JSON'a geçirin.
Teknik Ayrıntılar
- merge:true ile parseAllDocuments Üzerinden YAML 1.2 Spesifikasyonu
- YAML, { version: '1.2', merge: true } seçenekleriyle parseAllDocuments kullanılarak eemeli/yaml kütüphanesi (v2.8+, CVE güvenli) üzerinden ayrıştırılır. YAML 1.2 şeması, yes ve no gibi çıplak dizelerin güncel YAML spesifikasyonuyla uyumlu biçimde dize (boolean değil) olarak değerlendirilmesini sağlar. merge: true seçeneği, çapa/takma ad birleştirme anahtarlarını (<<: *anchor) tamamen genişleterek JSON çıktısının eksiksiz, referanssız veri içermesini sağlar. Çok belgeli YAML (--- ile ayrılmış) ilk belgeyi döndürür.
- Kütüphane Üzerinden Çapa ve Takma Ad Genişlemesi
- eemeli/yaml kütüphanesi, döngüsel referans tespiti dahil çapa (&name) ve takma ad (*name) genişlemesini güvenle işler. Birleştirme anahtarı genişlemeleri dahil tüm takma ad atanan veri blokları JSON çıktısında tamamen satır içine alınır. Bu her zaman doğru dönüşümdür çünkü JSON'da referans veya çapa kavramı yoktur. Kütüphanenin güvenli genişlemesi, hatalı biçimlendirilmiş YAML'dan kaynaklanabilecek sonsuz döngüleri önler.
- Tarayıcı Tabanlı — Yükleme Yok, Sunucu Yok
- Tüm işlem tamamen tarayıcınızın JavaScript motorunda gerçekleşir. Hiçbir veri hiçbir noktada ağ üzerinden iletilmez. 200KB'ı aşan girişler, tarayıcının yanıt vermeye devam etmesi ve yoğun serileştirme sırasında ana iş parçacığının bloke olmasını önlemek için otomatik olarak canlı moddan manuel moda (açık bir Dönüştür tıklaması gerektirir) geçer.
En İyi Uygulamalar
- Temiz Dönüştürme için YAML 1.2 Uyumlu Sözdizimi Kullanın
- YAML'ınızı YAML 1.2 standartlarıyla yazın — belirsizliği önlemek için yes, no, on, off, y ve n dize değerlerini açıkça tırnak içine alın (örn. enabled: 'yes'). Bu araç YAML 1.2 şemasıyla ayrıştırır (bunlar dizedir); ancak pipeline'ınızdaki eski araçlar YAML 1.1 kullanıyor olabilir (bunları boolean olarak okur). Kaynak YAML'da açıkça tırnak kullanmak, tüm ayrıştırıcılar için en güvenli uygulamadır.
- Hassasiyeti Korumak için YAML'da Büyük Sayıları Tırnak İçine Alın
- JavaScript, 2^53 - 1'den büyük (9007199254740991) tam sayıları hassas biçimde temsil edemez. Kubernetes'in resourceVersion ve uid alanları gibi sunucu tarafında int64 olan alanlar bu sınırı aşabilir. YAML kaynağınızda bu değerleri tırnak içine alın (resourceVersion: '9007199254740993'); böylece ayrıştırıcı bunları dize olarak değerlendirir ve JSON çıktısında dize değerleri olarak hassas biçimde korunur.
- Kullanmadan Önce JSON Çıktısını Doğrulayın
- YAML'ı JSON'a dönüştürdükten sonra bir API'ye göndermeden, saklamadan veya programlı olarak işlemeden önce sonucu doğrulayın. Yapının doğru olduğunu teyit etmek için JSON Biçimlendirici'yi kullanın. Bu, yapısal bir hatanın dönüştürme adımında değil, API katmanında kafa karıştırıcı bir reddedişe neden olduğu Kubernetes API çağrıları, OpenAPI spesifikasyonları ve JSON Schema doğrulamalı yükler için özellikle önemlidir.
- Dönüştürmeden Önce Çok Belgeli YAML'ı Ayırın
- YAML dosyanız birden fazla --- ile ayrılmış belge içeriyorsa ve hepsini JSON olarak almanız gerekiyorsa, önce dosyayı --- üzerinden bölün ve her belgeyi ayrı ayrı dönüştürün. Bu araç yalnızca ilk belgeyi alır. Basit bir yaklaşım: düzenleyicinizde '\n---\n' üzerinden bölün ya da awk kullanın ve her bölümü ayrı ayrı yapıştırın.
- Aşağı Akış JSON İşleme için jq Kullanın
- YAML'dan JSON aldıktan sonra, jq komut satırından onu sorgulamanın ve dönüştürmenin en hızlı yoludur. Bu aracı jq ile birleştirin: YAML'ı online dönüştürün, JSON'u yapıştırın, ardından tam olarak ihtiyacınız olanı çıkarmak için jq '.spec.replicas' veya jq '.services | keys' kullanın. Toplu dosya işleme için -o json bayrağıyla doğrudan yq CLI'yi kullanın.
Sıkça Sorulan Sorular
YAML'ı online olarak JSON'a nasıl dönüştürürüm?
Bu araç çok belgeli YAML'ı (--- ayırıcı) nasıl ele alıyor?
YAML çapaları ve takma adları (&anchor ve *alias) nasıl ele alınıyor?
YAML yorumları JSON çıktısında korunuyor mu?
Kubernetes manifest'i ile bu aracı nasıl kullanırım?
Bu araç Docker Compose dosyalarıyla nasıl yardımcı oluyor?
YAML 1.1 ile YAML 1.2 arasındaki fark nedir ve bu araç hangisini kullanıyor?
YAML neden sekme girintisini yasaklıyor?
YAML'ı JSON'a dönüştürürken büyük sayılar hassasiyetini kaybedebilir mi?
YAML'ı komut satırından JSON'a nasıl dönüştürürüm?
Bu aracı kullanırken YAML verilerim sunucuya gönderiliyor mu?
YAML girişi için dosya boyutu sınırı var mı?
İlgili Araçlar
Tüm araçları görüntüleyin →Base64 Çözücü ve Kodlayıcı
Kodlama ve Biçimlendirme
Base64'ü ücretsiz çevrimiçi kodlayın ve çözün. Tam UTF-8 ve emoji desteğiyle gerçek zamanlı dönüştürme. %100 tarayıcıda — kayıt gerekmez.
JSON Biçimlendirici ve Doğrulayıcı
Kodlama ve Biçimlendirme
JSON'u tarayıcınızda anında biçimlendirin, doğrulayın ve güzelleştirin. Sözdizimi denetimi, hata tespiti, sıkıştırma ve tek tıkla kopyalama. %100 gizli.
JSON'dan YAML'a Dönüştürücü
Kodlama ve Biçimlendirme
JSON yapıştırın, anında YAML alın. Tarayıcınızda canlı dönüştürme. K8s/Compose uyumlu, 2/4 boşluk girinti, Norway güvenli tırnak. %100 gizli, yükleme yok.
Yerleşik URL Ayrıştırıcılı URL Kodlayıcı ve Çözücü
Kodlama ve Biçimlendirme
URL'leri yerleşik URL ayrıştırıcısı ile gerçek zamanlı kodlayın veya çözün. İkili mod: encodeURI ve encodeURIComponent. %100 gizli, hiçbir veri sunucuya gönderilmez.
Sayı Tabanı Dönüştürücü — Binary, Hex, Decimal ve Octal
Dönüştürme Araçları
Binary, hex, decimal, octal ve herhangi bir taban (2-36) arasında anında dönüştürün. Ücretsiz ve gizli — tüm işlem tarayıcınızda yapılır.
Resimleri Çevrimiçi Sıkıştırın — JPEG, PNG ve WebP
Dönüştürme Araçları
JPEG, PNG ve WebP'yi %80'e kadar küçültün — tarayıcınızda, yükleme yok. 20 resim toplu, kalite ayarı, öncesi/sonrası karşılaştırma. Ücretsiz ve gizli.