Arka plan rengini ayarlarken .pngs klasörünü .jpgs dosyasına nasıl dönüştürebilirim?


10

Saydam arka planları olan bir png dosyaları klasörü var. Bunları komut satırından dönüştürmek ve görüntülerin şeffaf arka planlarını korumak istiyorum.

Herhangi bir yardım için minnettar olurum.

Jpgs saydamlığı desteklemediğinden, çıkış jpg'sinin arka plan renginin onaltılık değerini nasıl belirleyebilirim? Şimdi varsayılan olarak #ffffff? Bu komut dosyasını denedim, ama çıkış jpgs beyaz arka verir:

mogrify -quality 100 -format jpg *.png

Güncelleme

Bu png dosyalarını inkscape içinde oluşturdum. Bu png'leri jpgs'ye dönüştürmedeki amacım, dairesel veya açısal nesnelerdeki pürüzlü kenarlardan kurtulmaktır. Png'ler şu anda pürüzlü kenarlara sahiptir ve bunları jpgs'ye dönüştürmenin bu sorunu çözebileceğini okudum. Bununla birlikte, Christian Skjødt'ın cevabında ana hatları çizilen yöntemle dönüşüm, resimlere daha da kötü pürüzlü kenarlar verir. Ben png jpg dönüştürmek ve ayrıca kenar yumuşatma kenarları kurtulmak için kenar yumuşatma veya belki başka bir teknik kullanmak bir yolu var mı? Yardım için teşekkürler.


3
Sürekli değişiyorsa sorunuzu cevaplamak oldukça zor ... Gelecekte referans olması için: Sorunuza başından beri ne elde etmek istediğinizi eklemeye çalışın. "Güncelleme 2" niz: "Tırtıklı" sadece seçtiğiniz çözümün bir sonucu mu? Çözünürlüğü artırırsanız ("Bitmap'i dışa aktar ..." iletişim kutusundaki DPI numarası)?
Marcel Stimberg

Yanıtlar:


3

Kenarları yumuşatmak için hedef boyutunuzdan 10 kat daha büyük PNG'ler oluşturabilir, ardından JPG'ye kenar yumuşatma ile yeniden boyutlandırabilirsiniz. Bunu Python ve Python Imaging Library kullanarak iyi bir etki için yaptım, ancak diğer araçları kullanarak nasıl yapılacağından emin değilim.


28

JPEG formatı saydamlığı desteklemez - bu nedenle JPEG formatını kullanmak (veya kullanmak zorunda) için şeffaf arka planları korumak mümkün değildir. Farklı görüntü formatlarının özelliklerine genel bakış için Wikipedia'ya bakın .

Not o JPEG 2000 gerçekten şeffaflığı destekliyor, ama çok daha az yaygın JPEG formatında aşıyor. Bunun uygun bir alternatif olup olmadığı kullanım durumunuza bağlıdır.


Yanılıyor olabilirim, ancak OP herhangi bir saydam alanın hangi renge yapıldığını sormak istiyor. Beyaz yapılıyorlar, ancak OP mesela maviyi kullanabiliyordu.
nanofarad

16

İkinci sorunuza:

Resimlerinizi dönüştürürken arka plan rengini belirtmek için şu -fillseçeneği kullanabilirsiniz :

mogrify -quality 100 -format jpg -fill "#FF0000" -opaque none *.png

Kullanmak -backgroundbenzer sonuçlar verir. Unutma -opaque none.


Hey, yardımın için teşekkürler. Bu komut aracılığıyla çıkış jpegini yumuşatmanın herhangi bir yolu var mı? Ek bağlam için yukarıdaki güncelleme 2'ye bakın. Teşekkürler.
James

4

Ben hiçbir şekilde üzgünüm jpegbiçimi değil bir destekleyecek alpha channelşeffaflık olamaz bu yüzden.


0

görüntüyle ne yapmaya çalıştığınıza bağlı olarak, alfa kanalını ayrı bir gri tonlamalı görüntüye veya bir bit maskesine koymak mümkün olabilir ve görüntüyü kullanan program yardımcı görüntüyü yarı saydam / saydam değerler olarak uygular . Her ne kadar sonuçta alfa png'yi destekleyecek şekilde programı değiştirmek daha iyidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.