GIMP kullanarak bir rengi “silebilirsiniz”?


9

Şu anda bir iOS uygulaması üzerinde çalışıyorum ve standart uyarı iletişim pencerelerini tersine çevirmeye çalışıyorum. Kullandığı arka plandaki alfa değerinin, düz siyah bir görünüme ve düz beyaz bir görünüme karşı bazı renk örnekleme yoluyla ne olduğunu anlayabildim.

Bu bilgiler göz önüne alındığında, GIMP kullanmak yalnızca arka plan rengini "silmek" mümkündür, böylece yalnızca orijinal, harmanlanmamış uyarı arka planıyla kalırım?

Uyarı görünümünde yalnızca çalışan bir uygulamanın ekran görüntüsü olarak resim biçiminde var.

Yanıtlar:


8

Evet mümkün. Örnek olarak Wikimedia Commons'tan ( ed_g2s tarafından CC-By-SA 3.0 olarak lisanslanmıştır) bu resmi kullanarak nasıl yapıldığını anlatalım :

CC-By-SA 3.0 olarak lisanslanan ed_g2s tarafından PNG saydamlık gösterim görüntüsü

  1. Siyah ve beyaz arka plan sürümlerini aynı görüntünün katmanları olarak açın ( Katman Olarak Aç ... seçeneğini kullanarak veya her ikisini de açın ve birini kopyalayıp diğerine yapıştırın). Eğer zaten böyle değilse, beyaz katmanı siyah katmanın üzerine taşıyın. İki katman şöyle görünmelidir:

    Gösteri görüntü siyah arka plan ile Beyaz arka plan ile gösteri görüntü

  2. Katmanların farkını alın: siyah katmanı klonlayın (daha sonra ihtiyacınız olacak), beyaz katmanın katman modunu "fark" olarak değiştirin ve birleştirin. Sonucu ters çevirin. Bu size orijinal görüntünün alfa kanalını verir.

    Yeniden yapılandırılmış alfa kanalı

    Düzenleme: Arka planlarınız siyah beyaz değilse, tersine çevrilmiş fark katmanının siyah bir arka planı olmaz. Bunu düzeltmek için önce katmanı desatura edin (size en iyi kontrastı veren modu kullanarak) ve ardından arka planı siyah yapmak için Renkler → Otomatik → Normalleştir'i kullanın. Bunun yerine Kanal Karıştırıcı'yı da kullanabilirsiniz , ancak kullanmak biraz daha zordur.

    ( Yeniden oluşturduğunuz alfa kanalı en az% 100 opaklığa sahip bazı parçalara sahipse yukarıdaki normalleştirilir ; yeniden oluşturduğunuz görüntü yarı saydam her yerde ise, bunun yerine yalnızca siyah noktayı ayarlamak için Renkler → Düzeyler ... ' i kullanabilirsiniz . )

    Zaten bir tane yoksa, bir sonraki adım için resminizin siyah arka plana sahip bir sürümünü oluşturmanız gerekir. Bunu yapmak için aşağıdaki ek adımları kullanın:

    • Hangi orijinal sürümün daha koyu arka plana sahip olduğunu seçin. Üzerinde arka plan rengiyle dolu yeni bir katman oluşturun.
    • Fark katmanını klonlayın ve beyaz bir arka plana sahip olması için yeniden ters çevirin. Bu katmanı, az önce oluşturduğunuz yeni düz renk üzerine yerleştirin, katman modunu "çarpma" olarak ayarlayın ve birleştirin.
    • Son olarak, ortaya çıkan katmanın modunu "çıkartmak" için değiştirin ve orijinal görüntüyle katman üzerinde birleştirin. Bu, orijinal arka planı çıkarmalı ve görüntüyü siyah bir arka plan üzerinde bırakmalıdır.
  3. Önceden çoğaltılmış alfa içeren bir görüntü biçimi kullansaydık, şimdi az çok bitirecektik. Fakat olmadığımız için RGB kanallarını hala çoğaltmamız gerekiyor. Bunu yapmak için, önceki adımda oluşturduğumuz alfa katmanını klonlayın (veya yalnızca panoya kopyalayın), katman modunu "bölmek" olarak ayarlayın ve adım 2'den önce klonladığınız siyah arka plan katmanıyla birleştirin. şöyle görünmelidir (farkı görmek için orijinal siyah arka plan sürümüyle karşılaştırın):

    Çoğaltılmış RGB kanalları

  4. Şimdi, ortaya çıkan katmana bir katman maskesi ekleyin, maskeyi seçin ve alfa katmanını yapıştırın. Sonuç artık orijinal saydam görüntüye az çok benzemelidir. Son olarak, maskeyi uygun bir alfa kanalına dönüştürmek için uygulayabilirsiniz (ancak GIMP'nin PNG dışa aktarımı bunu yapmasanız bile sizin için yapar). Ve işte gidiyorsunuz - bir tane hazır şeffaf PNG hazır:

    Şeffaflıkla yeniden oluşturulmuş görüntü

Tabii ki, bu teknik gerçekten saf siyah ve saf beyaz arka planlarda görüntünün sürümlerine sahip olmanızı gerektirir . Arka planlar biraz kapalıysa, benzer yöntemler yine de kullanılabilir, ancak ek renk ayarlamaları yapmanız gerekebilir ve sonuçlar o kadar mükemmel olmayabilir. ( Düzenle: Yukarıdaki 2. adıma yapılan eklemelere bakın. Değiştirilen talimatlar, düz renkler oldukları sürece herhangi bir rengin arka planlarıyla çalışmalıdır.)


Ps. GIMP aynı zamanda bir "Renk Silme" özelliği var mı (Kepçe Doldurma aracı için bir harmanlama modu olarak, ya da Alpha Renk ... için yararlıdır, bütün görüntü için) saydamlık yeniden yaparken yalnızca sahip bir görüntünün sürümünü düz renk arka plan üzerinde. Bununla birlikte, dikkatli kullanılmadıkça, muhtemelen olmasını istediğinizden daha şeffaf çıktı üretme eğilimi vardır .

Pps. Orijinal ve yeniden oluşturulmuş görüntüleri çok dikkatli bir şekilde karşılaştırırsanız, tam olarak aynı olmadıklarını göreceksiniz - bazı renk değerleri 1/256 kadar kapalıdır. Bunun nedeni GIMP'in "bölme" katman modunun nasıl çalıştığıdır: çıktı = (255 × giriş ) / katman olan alfa çarpımının gerçek tersini hesaplamak yerine , aslında çıktı = (256 × giriş ) / ( katman ) hesaplar.+ 1). Görünüşte sıfıra bölünmekten kaçınmak için yapılan bu uyumsuzluk, bazı renklerin olması gerekenden biraz farklı bir değere yuvarlanabileceği anlamına gelir. Ne yazık ki, GIMP'yi yamalamak, bölünmeyi istediğimiz şekilde yapmak için bir eklenti yazmak veya başka bir program kullanmak dışında bunun hiçbir yolunu bilmiyorum. Neyse ki, renk farkı nadiren insan gözü tarafından algılanabilirse nadiren görülür.

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.