Pipe STDOUT bir resme?


1

Son zamanlarda, "git show <hash>" gibi bir terminal komutu çalıştırmak ve çıktıyı bir görüntüye, tercihen bir PNG'ye kaydetmek istedim.

Ben biraz googled ve özellikle alma komutu ile, bazı düzgün hileler bulundu, ama güvenilir bir şekilde STDOUT yakalamak ve bir görüntü olarak kaydetmek hiçbir şey.

Bu yüzden beynin burada güvenini isteyeceğimi düşündüm. Linux için test edilmiş ve doğrulanmış bir çözümü olan var mı?


1
Sadece açık olması için, metni bir resim olarak oluşturmasını istersiniz (böylece size baktığınızda metni okuyabilirsiniz), değil mi? Çünkü bunun cevabı "ASCII / Unicode baytının metnin bayt haline gelmesini istiyorum, sadece rastgele / bozuk / çöp pikselleri gibi görünen bir resim yapmasına rağmen" veya "ifadesinden daha karmaşık olabilir." Metnin ASCII / Unicode baytlarının, meta veride veya görüntü dosyası formatındaki bazı gizli alanlarında saklanmasını istiyorum. "
Spiff

Çıktıyı okunabilir metin olarak hazırla, evet. Mümkünse rengi korumak .bashrc dosyamda "force_color_prompt = yes" olarak ayarlanmış olduğum için, ancak bir fark yaratacaksa geçici olarak bu ayarı çevirmeyi deneyebilirim.
rjh427

Yanıtlar:


2

Metni bir resme nasıl dönüştürebiliriz zaten burada cevaplandı: https://stackoverflow.com/questions/3826379/image-magick-converting-text-to-image-is-there-a-way-to-center-the -text-to-t Bu cevap, ImageMagick araçlarıyla bunun nasıl yapılacağına dair çeşitli değişkenler sağlar.

Lütfen dikkat: Bu, yalnızca komutunuzun çıktısının düz metin olması durumunda güvenilir bir şekilde çalışır.
Herhangi bir fantezi biçimlendirme varsa (ncurses gibi) sonuçları oldukça tahmin edilemez olabilir.


Dönüştür, evet. Bununla birkaç şey denedim, hiçbiri işe yaramadı. Muhtemelen .bashrc dosyamda belirttiğim "force_color_prompt = yes" ve bahsettiğim o şık biçimlendirme şeyim olduğundan.
rjh427

0

Bazı olasılıkları listeleyen kısmi cevap:

Resimlere metin oluşturmak için kullanabileceğiniz çok sayıda program var, örneğin:

  • convert ImageMagick / GraphicsMagick sitesinden
  • pbmtext NetPBM’den Portable Bitmap’e
  • paps, Pango'yu kullanarak Postscript’e dönüştürülür
  • enscript, Postscript’e işlenir

Ancak, farklı bir formatı PNG'ye dönüştürmek sorun olmamalıdır.

Bunlardan sadece enscript"özel çıkışlar" üzerinden renkleri destekler. Bunlar terminal çıkışları ile aynı değildir, bu yüzden onları awk / perl vs. ile dönüştüreceksiniz.

Başka bir seçenek de her şeyi bir xterm'de ve ekran görüntüsünde işlemek.

Görebildiğiniz gibi, bunların hepsi oldukça karmaşıktır, at çalışması onları yapmak için önemsiz çaba gerektirecektir. Bu hiç de şaşırtıcı değil, çünkü temelde terminalinizin tüm oluşturma bölümlerini çoğaltmak istiyorsunuz.

Çıktının kendisini saklamak ve bakmak istediğinizde bir terminale almak daha kolay olabilir.


Bu yüzden farkına vardığım kadarıyla kesinlikle önemsiz değil. Bitmapler çalışır, ancak sıkıştırılmadıkları için çekici olmaz. PostScript olarak kaydetme bazı arzu edilen seçenekler sağlayabilir, amaç git show <hash> çıktısını başkalarıyla paylaşılabilecek bir biçimde korumaktır (portföy düşünün). Belki de henüz düşünmediğim kadar iyi bir seçenek var.
rjh427

Dediğim gibi, son biçim sorun değil - son adımda PBM'den PNG'ye veya Postscript'ten PNG'ye özgürce dönüştürebilirsiniz. Asıl sorun, renk kaçışlarıyla metin oluşturmaktır. Çıktıyı korumak git show sadece git show > xxxveya ile bir dosyaya kaydedilmek suretiyle yapılabilir git show --pretty=blah > xxx. Bir tür özgeçmiş için ihtiyacınız varsa, metin işleme sisteminizin ihtiyaç duyduğu komutlara dönüştürmek bir resme dönüştürmekten çok daha kolay olacaktır.
dirkt
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.