PPCG Favicon'u Yapın


21

1 Kasım'a gelin, Programlama Bulmacaları ve Code Golf mezun olacak, bu yüzden önümüzdeki 11 ay içinde, mezun olduğumuz andan itibaren bazı anıları kurtarmak isteyeceğiz.

Aşağıda görülen PPCG favicon'unu üreten bir program yazın.

görüntü tanımını buraya girin

  • Görüntü en az 64x64 piksel olmalıdır.
  • Mavi renk # 62B0DF olmalıdır. Arka plan beyaz veya açık gri olabilir.
  • Görüntünün burada olduğu gibi pikselleştirilmesine gerek yok.
  • Alternatif olarak, Cyan ve White'ın standart parlak ANSI renk kodlarını kullanarak metin oluşturun (en az 64x64 boşluk olmayan karakterlerle boyutlarda) .
  • Yerleşik görüntüler ve PPCG logosunun alınmasına izin verilmez.

Bu kod golf, yani standart kurallar geçerlidir. Bayt cinsinden en kısa kod kazanır.


10
Cidden, baskı ile ne demek istiyorsun ? Bu tam görüntünün bayt çıkışı? Görüntü ekranda gösterilsin mi? Başka bir şey?
Dennis

3
Görüntünün nasıl gösterilebileceği veya üretileceği ile ilgili herhangi bir kısıtlama olmadan veya ne tür cevapların ilginç olduğu düşünülmelidir.
Dennis

6
@ LegionMammal978 Popülerlik yarışması etiketi, belirsiz bir özellik için bir bahane değil. Bir popülerlik yarışmasının şartnamesi, diğer tüm meydan okuma türleriyle aynı standartlarda yapılmalıdır. Bu etiket, insanların cevapların kalitesini bilgisayardan daha iyi değerlendirmek için daha iyi olduğu (örneğin görüntü işleme zorluğundaki görsel benzerlik gibi) zorluklara değil, katılımcıya iyi bir cevabın neye benzeyeceği bile belli değil. “Çoğu oy”, bu oyların nasıl hedefleneceğine dair bir kılavuz yoksa, nesnel kazanma kriteri oluşturmaz.
Martin Ender

7
En azından logoyu herhangi bir kaynaktan yüklemeyi yasaklamanızı öneririm.
nicael

8
@Dennis En yakın bulut yazıcıyı kullanarak yazdırmayı kastetti
Optimizer

Yanıtlar:


18

Bash (OSX), 33 27 23 18 Bayt

Adamı duydun, nasıl istersen.

http: yon.se/q açın

Bunun bir popülerlik yarışması olduğunu biliyorum. Ama hey, ne zaman golf kodlayabilirsin, neden olmasın?

Şimdi bir kod golf. \ o / Bu kayıt sırasında geçerliydi.

Bir noktada benim için yapılmış bir istisna bile vardı! Ancak, @AlexA olarak. dikkat çekti ...

İstediğiniz herhangi bir yöntemi kullanabilirsiniz (VoteToClose’in tepkisi hariç, görüntüyü yüklemek hariç) ” Belirli kullanıcılar / yanıtlar için istisnalara izin vermek adil değildir. - Alex A.

Buna katılıyorum ve bu nedenle, bunun cevap olarak seçilmesini istemiyorum. Bu hala daha fazla golf oynamayacağım anlamına gelmez. ;)

Fantezi bir kısa URL ile 6 byte tıraş için @ ΚριτικσιΛίθος için teşekkürler!

DAHA FAZLA 5 byte'lık bir meraklısı ile tıraş için @ ev3commander sayesinde, daha kısa URL!

@Kennytm'e, protokol boyutunu küçültebileceğimi ve tırnak işaretlerini kaldırabileceğimi işaret ettiğim için teşekkür ederim .


1
@VoteToClose Bu kısa URL'yi bayt sayısını azaltmak için kullanabilirsiniz:http://goo.gl/gviJDX
Kritixi Lithos

6
@ manatwork Ters psikoloji mi? İşe yarıyor.
George Reith

1
Daha kısa:open http:goo.gl/gviJDX
kennytm

5
bu url'yi deneyin:http:yon.se/q
ev3 commander 28:15

6
Bağlantı bağlandı.
Rɪᴋᴇʀ

12

BitShift , 2795 bayt

10100110010101101001010111001010110100101011100101011010010101110010101101001010111001010110100101011100101011010010101110010101101001010111001010110100101011100101011010010101110010101101111011101010000000110101001011010100011010100010101101010010101101010010101101010010101101010010101101010010101101010011010100101101010001101010010110101001100110010101111111001010111010100101011010100101011010100101011010100101011010100101011010100101011010100101011010100101011001010110100101011001100110101000000011010100010101101010010101101010010101101010010101101010010101101010010101101010010101101010010101101010011010100101101010011001100101011111110010101110101001010110101001010110101001010110101001010110101001010110101001010110101001010110101001010110010101101001010110011001101010000000110101000101011001010110100101011100101011101010010101101010011010100101101010001010110101001010110010101101001010111001010111010100110101001011010100110011001010111111100101011101010011010100010101101010011010100010101100101011101010010101100101011101010011010100010101101010010101101010011010100101101010011001100101011111110010101110101001101010010110101000110101000101011010100110101000101011010100101011010100110101000101011001010110100101011101010011010100101101010011001100101011111110010101110101001101010001010110101001010110101001101010001010110101001101010001010110010101110101001010110010101110101001101010010110101001100110010101111111001010111010100110101000101011010100101011010100101011001010110100101011101010010101101010011010100101101010001010110101001101010010110101001100110010101111111001010111010100101011010100101011010100101011010100101011010100101011010100101011010100101011010100101011001010110100101011001100110101000000011010100101101010001010110101001010110101001010110101001010110101001010110101001010110101001010110101001101010010110101000110101001000010001010111111100101011010010101110010101110101001010110101001010110101001010110101001010110101001010110101001010110010101101001010111001010110100101011001100110101000000011010100101101010001101010010110101000110101001011010100011010100101101010001101010001010110101001010110010101101001010111001010110100101011100101011010010101110010101101111011101010000000110101001011010100011010100101101010001101010010110101000110101001011010100011010100010101101010011010100101101010001101010010110101000110101001011010100011010100101101010011001100101011111110010101101001010111001010110100101011100101011010010101110010101101001010111001010111010100110101001011010100011010100101101010001101010010110101000110101001011010100011010100100001000101011111110010101101001010111001010110100101011100101011010010101110010101101001010111001010110100101011100101011010010101110010101101001010111001010110100101011100101011010010101110010101

Bu çıkışlar

   @@@@@@@@@@@@    
 @@@@@@@@@@@@@@@@  
 @@@@@@@@@@@@@@@@  
 @@@@@@@@@@@@@@@@  
 @   @@@  @@@   @  
 @ @@ @ @@ @ @@@@  
 @   @@ @@@@ @  @  
 @ @@@@ @@ @ @@ @  
 @ @@@@@  @@@  @@  
 @@@@@@@@@@@@@@@@  
  @@@@@@@@@@@@@@   
   @@@@@@@@@@@@    
         @@@       
         @@        
         @         

  Bu, muhtemelen hala logosu tanıyabileceğiniz en kısa koddur ... Korkunç bir dil oluşturdum :(

Burada dene

Not
Bu kurallar değiştirilmeden önce gönderildi, mevcut kurallara göre bu cevap geçersiz. İnsanlara ilham vermek için onu burada bırakacağım


5
Şimdi, üzülmeyin, bu çok özel bir dilden çok özel bir çıktı.
Sven,

12

JavaScript

Not: Bu cevap kurallar önemli ölçüde değiştirilmeden önce yapıldı, böylece bu cevap rekabet etmedi .


Bu, bazı çılgın ve harika dize işlemleriyle tarayıcı konsolunuza yazdırır.

Bunun daha kısa bir versiyonunu yaptım ama hiçbir yerde bulamıyorum.

Krom / Firefox

Bu sürüm sadece her piksele iki kat kat daha fazla orantılı görünüyor

var a = `<long_string_here>`;
console.log.apply(console, [].concat.apply( [Array(+a.split('\n')[1].split(' ')[1] ).join(' ').split(' ').map(function(l){return'%c█'.repeat(+a.split('\n')[1].split(' ')[0]).repeat(2)}).join('\n')], a.split`
`.slice(3).map(function(l){return [].concat.apply([], l.match(/\d+ \d+ \d+/g).map(function(l){return [l.replace(/(\d+) (\d+) (\d+)/,"color:rgb($1,$2,$3)"),l.replace(/(\d+) (\d+) (\d+)/,"color:rgb($1,$2,$3)")]}))})))

Safari

var a = `<long_string_here>`;
console.log.apply(console, [].concat.apply( [Array(+a.split('\n')[1].split(' ')[1] ).join(' ').split(' ').map(function(l){return'%c█'.repeat(+a.split('\n')[1].split(' ')[0])}).join('\n')], a.split`
`.slice(3).map(function(l){return l.match(/\d+ \d+ \d+/g).map(function(l){return l.replace(/(\d+) (\d+) (\d+)/,"color:rgb($1,$2,$3)")})})))

Bu long_string_herebir ppm , bu senaryoyu konsola rastgele bir görüntü basmak için bir süre önce yazdım .


Bu nasıl çalışıyor? Peki, JavaScript, console.logmesaja stil vermek için css sağlayabileceğiniz bir özelliğe sahiptir .

Ben unicode karakter ve renk, ppm'den alınan doğru rengin.


Başka bir görüntü çalışmasını görüntülemek için:, convert my_img.png -resize 50x50 -trim -compress none -blur 1x2 -flatten -background white ppm:-ardından çıktısını kopyalayın.<long_string_here>

Tam kod

Bu oldukça büyük olduğundan, tam kodu pastebin içine koydum, böylece bunları çalıştırabilirsiniz.

Chrome / Firefox: pastebin

Safari: pastebin


Sonuç

görüntü tanımını buraya girin

Firefox Sonucu

Safari Sonucu


4
Ekran görüntülerini biraz küçültebilir misiniz? Bunların her biri dikey perde mülkümün tamamını alıyor. (Belki bir resim yeterlidir, gerisini birleştirin).
mınxomaτ

Bayt sayısı nedir? bu kod-golf şimdi
kedi

11

Ayakkabı ile yakut

zoom = 10

Shoes.app(width: 19 * zoom, height: 18 * zoom) {
    background white

    stroke fill '#62B0DF'
    rect 1 * zoom, 1 * zoom, 17 * zoom, 13 * zoom, 3 * zoom

    skew 0, -45
    rect 10 * zoom, 11 * zoom, 5 * zoom, 4 * zoom

    stack(left: 1 * zoom, top: 3 * zoom) {
        para('PCG').style size: (5.66 * zoom).to_i, weight: 700, stroke: white
    }

}

Örnek çıktı:

PPCG logosu Ayakkabı ile çekilmiş


10

Javascript (ES2015), 199 bayt

(+72 bayt CSS)

Kodum, logoyu <body>bazı unicode dizileri aracılığıyla sayfanın bir öğesine yazdırıyor . Kodu geliştirmeye yönelik öneriler açıktır (özellikle 0-pad'ler için )

Demo (MacOsX / Chrome 46'da test edilmiştir): http://codepen.io/anon/pen/EVBmKN?editors=011


Javascript (okunabilirlik için eklenen yeni satırlar)

f=l=>{for(l of[49155,0,0,0,29070,19024,29206,16978,16780,0,0,32769,49155,65311,
65343,65407].map(r=>(1e15+r.toString(2)).slice(-16)))document.body.innerText+=
[...l].map(b=>["▉", " "][b]).join``+"\n"}

CSS

*{letter-spacing:-.1em;font:1em/.96 arial;white-space:pre;color:#62B0DF}

Sonuç

PCG Logosu


Ungolfed ve Açıklaması

Orijinal 16x16 PCG simgesinin orijinal olarak gönderilmiş olduğunu düşünürsek, bilgileri ikili biçimde kodlayabiliriz.

Örneğin, ilk satır haritaların 1100 0000 0000 0011bulunduğu yer olarak kodlanacaktı . Her ikili sayı kolayca böylece ondalık biçimde saklanabilir olduğunu . Dizi[0, 1][blue, white]1100 0000 0000 001149155

[49155,0,0,0,29070,19024,29206,16978,16780,0,0,32769,49155,65311,65343,65407]

Her piksel rengiyle ilgili tüm bilgileri (ondalık biçimde) içerir. Dizinin her elemanı, çizilecek bir çizgiyi temsil eder. Bazı satırların 0(tam mavi çizgiler) olduğunu veya uzunluklarının 16rakamlardan (mavi piksel ile başlayan bir satır) küçük olduğunu unutmayın: daha sonra bu ikili sayıları sağa kaydırmamız gerekir.

[...].map(r=>(1e15+r.toString(2)).slice(-16))

mapFonksiyon sola artı birleştirilmiş ikili sayıya 15 sıfır ekleyin. Böylece sonuç 16sola doğru pikselle dilimlenir . Şimdi dizi aslında

0:  "1100000000000011"
1:  "0000000000000000"
2:  "0000000000000000"
3:  "0000000000000000"
4:  "0111000110001110"
5:  "0100101001010000"
6:  "0111001000010110"
7:  "0100001001010010"
8:  "0100000110001100"
9:  "0000000000000000"
10: "0000000000000000"
11: "1000000000000001"
12: "1100000000000011"
13: "1111111100011111"
14: "1111111100111111"
15: "1111111101111111"

Yukarıdaki rakamlara daha yakından bakın: PCG logosunu neredeyse görebiliriz. :)
Bu bilgiyi dizide saklarsak, 16x18 bayt (288 bayt) kullanmamız gerektiğini unutmayın. Bu yaklaşım yerine 135 bayt gerektirir

Bir sonraki adım her çizgiyi çizmektir. Yapı

for(l of [...].map(...))

dizi üzerinde döngü values(ES6 özelliği) ve gövdeye ekleriz

document.body.innerText += [...l]

where [...l] ikili diziyi bir dizi olarak temsil eder. Örneğin ilk satır olarak okunur

["1", "1", "0", "0" ... , "0", "0", "1", "1"]

sonra tekrar map()her değeri dönüştürmek için kullanırız :

 b=>["▉", " "][b]

eğer değer 0o zaman LEFT SEVEN EIGHTHS BLOCK (U+2589)aksi halde bir boşluk olur EM SPACE (U+2003). Kısacası bu ödev

document.body.innerText += [...l].map(b=>["▉", " "][b]).join``+"\n"

her birini 0veya 1birini bir kare bloğa veya bir boşluğa dönüştürür: daha sonra dizi birleştirilir ve takip eden bir yeni satır dizisiyle birlikte gövdeye eklenir.

CSS Ben düzeltmeleri kullandım line-heightve letter-spacing(ı sonucu böylece biraz diğer tarayıcılarda değişebilir, Chrome üzerinde test ettik)


3
control-f 0 ve PPCG logosunu 0s ve 1s'de görebilirsiniz: D
ev3 komutanı

@ ev3commander Ben kontrol-f olduğunda, BitShift cevap nedeniyle, gecikmeye başlar.
Yoldaş SparklePony

7

Brainfuck, 120148 bayt

Bu cevap şimdi rekabetçi değildir. Bu kurallar değiştirilmeden önceydi ve bunun kesinlikle kod golf kazanmak umuduna sahip değil.

Görüntünün onaltılık değerini elde etmek için Brainfuck kodu. Çok, çok, çok uzun.

İşte bir pastebin linki ve ilk çift satır. https://paste.ee/p/LtcCy

+[--------->+<]>-.+.----.-----.++++.-[--->++++<]>+.>-[----->+<]>+.+++.-------.--[-->+++<]>-.+[--->++<]>++.[--->++++<]>+.-[---->+++<]>+.-[--->++++<]>+.-[---->+++<]>.[--->++++<]>+.-[---->+++<]>.......--[-->+++<]>-.[---->+++<]>+.+++++.-----.++++.----..+.---.--......+.++.---......+.+.--.++++++++.--------.++++++.------......----[-->+++<]>.---------.---------.--[-->+++<]>--.++.-[------>+<]>-.+.+++.---------....+.+++++++.------.+++.+.+++.-----.-.+.-.++.-----.++++.+++++.-----.-.+.-.-.--.+++++.-----.+++++++.-----.++++.[->++++++<]>++.--[------>+<]>...+++.-- 

Katı bayt sayısı için +1, çok iyi okur! Sadece bir not: oraya yapıştırılmış , 120.148 bayta benziyor.
nicael

Teşekkürler, aynı sayacı yazdım. Yanlış yazılmış bir şey olmalı. Şimdi düzeltildi.
Rɪᴋᴇʀ


6

Javascript ES6, 461 bayt

Sıkıştırma üzerinde daha fazla çalışmam gerekiyor.

x.style.cssText='display:block;font:4px/2px monospace;color:#62B0DF',x.innerHTML=`  28
 38
 31
${a=`5
`.repeat(8)}6   a   a    7
6  8  8 8  8  8  6
6  8  +  7  71
6      +9 6
6  a9 6
6  6a 8  1 6
698   +  6
6  7+   1+    7
${a} 31
 38
  3+
   28
47
46
41+
41
48
4+`[r='replace'](/a/g,'  1')[r](/9/g,'  7  +  ')[r](/8/g,'++')[r](/7/g,11)[r](/6/g,'1++')[r](/5/g,'31+')[r](/4/g,Array(18).join` `)[r](/3/g,21)[r](/2/g,11111111)[r](/1/g,'+++')
<pre id=x></pre>


5

Ciklet , 175 bayt

Nadir zamanlardan biri Bubblegum, için kullanışlıdır !

ANSI çıkış kodlarını destekleyen bir terminalde çalıştırın.

0000000: e060 3e00 a75d 000d 97c4 b1da c813 35e1  .`>..]........5.
0000010: 9ebb 75d8 b95a ea28 a23d e9c6 5d80 7ce0  ..u..Z.(.=..].|.
0000020: 8d72 884f 2eb0 23f0 a6dc 406b 5724 9b78  .r.O..#...@kW$.x
0000030: 229d 11b7 29c8 9be6 7b76 26d4 f41a 69e0  "...)...{v&...i.
0000040: e626 1923 061a 07fc 4ca6 3cc9 f947 7760  .&.#....L.<..Gw`
0000050: 86df 1d86 37a8 6825 dd9d a3b4 a050 573c  ....7.h%.....PW<
0000060: 7efa 920a 446d 98f8 eeb9 91f7 f912 ca3b  ~...Dm.........;
0000070: 9360 ddba 3450 30ff cee0 fb32 31d1 06cd  .`..4P0....21...
0000080: 0d46 2f2d 5371 896c 6bb0 5fb8 3d6d f096  .F/-Sq.lk._.=m..
0000090: 67e9 8cb8 f92f 9eaa 7d35 0914 a742 6315  g..../..}5...Bc.
00000a0: 1a62 f54d b969 b980 c832 8a3f 8c00 00    .b.M.i...2.?...

İle hexdump ters xxd -r

İşte çıktının bir ekran görüntüsü:

Program çıktısının ekran görüntüsü

Not: MinGW terminalli Windows makinemde, Windows Python binary ANSI kodlarını doğru bir şekilde veremiyor, bu yüzden yukarıdakiler python <esolangs reference implementation>.py <infile> | catLinux makinelerinde düzgün çalışmalı.


4

Javascript (ES6), 192 bayt

document.body.innerHTML='<svg><path fill=#62B0DF d="'+"m01Q0010L60Q7071L74Q7565L55L37L35L15Q0504z".split('').map(v=>v*20||v).join(" ")+'"/><text y=65 fill=#FFF style="font:38pt arial">\xa0PCG'

Bu, bir SVG D yolunun sıkıştırılmış bir versiyonunu alır. Boşluklar kaldırılır, bu nedenle tüm argümanlar tek bir ondalık sayı olmak zorundadır, bu nedenle herhangi bir sayı gerçek svg'ye yazılmadan önce 20 ile çarpılır.

Çıktı: Demo: https://jsfiddle.net/Luy6qj80/
görüntü tanımını buraya girin


@RikerW Bir URL’den almak için görünmüyor.
Conor O'Brien,

NVM, bunun ne yaptığını anladım. İyi iş.
Rɪᴋᴇʀ

4

LibreLogo , 122 116 115 bayt

Kullanılması Logo bir oluşturmak için Logo . Bu özyineleme olarak sayılıyor mu?

Kod:

fontsize 20 fontcolor [3]fontweight "bold pc [24]fc 6402271 bk 40 rt 45 fd 40 fill home rectangle[64,52,5]text "PCG

Sonuç:

görüntü tanımını buraya girin

Açıklama:

fontsize 20             ; Font Size   = 20pt
fontcolor [3]           ; Font Color  = white
fontweight "bold        ; Font Weight = bold
pc [24]                 ; Pen Color   = invisible
fc 6402271              ; Fill Color  = #61B0DF
bk 40                   ; Move Back 40pt
rt 45                   ; Turn Clockwise 45 Degrees
fd 40                   ; Move Forward 40pt
fill                    ; Close and Fill the Line Shape
home                    ; Reset Initial Turtle Settings and Position
rectangle[64,52,5]      ; Draw a Rectangle with Rounded Corners
text "PCG               ; Set Text of the Actual Drawing Object as "PCG"

Önceki girişimler:

116 Bayt:

fontsize 20 fontcolor [3]fontweight "bold pc [24]fc 0x61b0df bk 40 rt 45 fd 40 fill home rectangle[64,52,5]text "PCG

122 Bayt:

ht fontsize 20 fontcolor [3]fontweight "bold pc [24]fc [97,176,223]bk 40 rt 45 fd 40 fill home rectangle[64,52,5]text "PCG

3

JavaScript, 680 bayt

Aslında, kuralları çoktan değiştirilen orijinal yarışma için çoktan bitirdim. Bu kesinlikle bulabileceğiniz en kısa kod değil. Popülerlik yarışması için tasarlandı ve orijinal favicon pikselini piksel cinsinden oluşturuyor. Onun da bazı özellikleri var. :)

f=c=>{x=(d=document).body.appendChild(d.createElement`canvas`).getContext`2d`;if(c.b)x.scale(4,4);x.fillStyle=c.m?'#2d2d2d':'#62b0df';x.fillRect(0,0,16,16);x.fillStyle='#fff';for(i=0;i<(w=[0,0,1,0,14,0,15,0,0,11,15,11,0,12,1,12,14,12,15,12,0,13,1,13,2,13,3,13,4,13,5,13,6,13,7,13,11,13,12,13,13,13,14,13,15,13,0,14,1,14,2,14,3,14,4,14,5,14,6,14,7,14,10,14,11,14,12,14,13,14,14,14,15,14,0,15,1,15,2,15,3,15,4,15,5,15,6,15,7,15,9,15,10,15,11,15,12,15,13,15,14,15,15,15,1,4,2,4,3,4,7,4,8,4,12,4,13,4,14,4,1,5,4,5,6,5,9,5,11,5,1,6,2,6,3,6,6,6,11,6,13,6,14,6,1,7,6,7,9,7,11,7,14,7,1,8,7,8,8,8,12,8,13,8,]).length;i++)(t=a=>setTimeout(_=>x.fillRect(w[a++],w[a++],1,1),(c.a||0)*i))(i++)}

Fonksiyonu ç parametreye kadar çağırabilirsiniz:

f({});
f({m:true});
f({b:true});
f({a:50});
f({m:true,b:true,a:50});

mmeta gider ve rengini buna göre değiştirir. Eğer küçük onu bulursak kullanımı bonu supersize için 16x16px için 64x64px . Sonunda alogoyu mavi bir tahtaya kazınmış gibi canlandırır. Değer, her animasyon adımı için hızdır.

Ungolfed

f=c=>{
    x=(d=document).body.appendChild(d.createElement`canvas`).getContext`2d`;
    if (c.b) x.scale(4,4);
    x.fillStyle = c.m?'#2d2d2d':'#62b0df';
    x.fillRect(0,0,16,16);
    x.fillStyle='#fff';
    for(i=0;i<(w=[0,0,1,0,14,0,15,0,0,11,15,11,0,12,1,12,14,12,15,12,0,13,1,13,2,13,3,13,4,13,5,13,6,13,7,13,11,13,12,13,13,13,14,13,15,13,0,14,1,14,2,14,3,14,4,14,5,14,6,14,7,14,10,14,11,14,12,14,13,14,14,14,15,14,0,15,1,15,2,15,3,15,4,15,5,15,6,15,7,15,9,15,10,15,11,15,12,15,13,15,14,15,15,15,1,4,2,4,3,4,7,4,8,4,12,4,13,4,14,4,1,5,4,5,6,5,9,5,11,5,1,6,2,6,3,6,6,6,11,6,13,6,14,6,1,7,6,7,9,7,11,7,14,7,1,8,7,8,8,8,12,8,13,8,]).length;i++)
        (t=a=>setTimeout(_=>x.fillRect(w[a++],w[a++],1,1),(c.a||0)*i)
        )(i++);       
}

Çıktı

Varsayılan

PPCG Favicon üretimi

animasyon

PPCG Favicon üreme animasyonlu


Altı yüz seksen bayt ?! Cevabınızı afiş-bot kanıtı yapmak ister misiniz?
RedClover 28:17

2

Python 3, 10,069 bayt

Onaltılıyı orijinal logodan yeni bir dosyaya yazar.

with open('test.png', 'w+b') as image_file:
    for line in ['\x89PNG\r\n', '\x1a\n', '\x00\x00\x00\rIHDR\x00\x00\x00\x13\x00\x00\x00\x12\x08\x06\x00\x00\x00\xb9\x0c\xe5i\x00\x00\n', '\xa3iCCPICC Profile\x00\x00H\x89\x95\x97\x07T\x13\xe9\x16\xc7\xbf\x99I/\x94\x04"\x9d\xd0;R\x04\x02H\xaf\xa1\x08\xd2\xc1FH\x02\t%\x84@\x10\xb1#\xe2\n', '\xac\x05\x15\x91bAW)\n', "V@\xd6\x82\x88baQ\xec}A\x16\x01u],\xd8Py\x03<\xc2{\xef\xbc=\xef\xbc{\xce\x9d\xf9\x9d{\xee\xfc\xe7\xce7\xf3\x9d\xf3\x1f\x00(]\x1c\xb18\x15V\x00 M\x94%\t\xf3\xf3d\xc6\xc4\xc61\xf1\xbf\x03\x02\xc0\x00\x1ap\x02\xca\x1cn\xa6\xd8#44\x08\xfcm|\xbc\x07\xa0\x89\xf3m\x8b\t\xad\xbf\xef\xfb\xaf\xa1\xc8\xe3gr\x01\x80BQN\xe0er\xd3P>9\x91\\\xb1$\x0b\x00D\x80\xd6\xf5\x96f\x89'\xb8\x18e%\t: \xca{'8i\x8aONp\xc2\x14_\x99\xec\x89\x08\xf3B\xf9\t\x00\x04\n", "\x87#I\x02\x80<\x84\xd6\x99\xd9\xdc$T\x87B@\xd9J\xc4\x13\x8aPf\xa1\xec\xca\x15px(\xe7\xa0l\x9e\x96\x96>\xc1\x07P6N\xf8\x17\x9d\xa4\x7f\xd3L\x90ir8I2\x9ez\x96\xc9 x\x0b3\xc5\xa9\x9ce\xff\xe7r\xfc\xefHK\x95N\xdfC\x17M\x8a@\xe2\x1f6qF\xd7\xac&%=P\xc6\xa2\x84y!\xd3,\xe4M\xf6O\xb2@\xea\x1f9\xcd\xdcL\xaf\xb8i\xe6q\xbc\x03\xa7Y\x9a\x12\xe91\xcd\x1c\xc9\xcc\xb5\xc2,v\xc44K\xd2\xc3d\xfa\xfcL\x9fp\x99>\x9f\x1d$\x9b!u\x9e\x8c\x13\x85\xbe\xeci\xce\x15DDOs\xb60j\xde4g\xa6\x84\x07\xce\xf4x\xc9\xea\x12i\x98l\xe6D\x89\xaf\xec\x19\xd32gf\xe3rff\xc8\x12D\xf8\xcf\xcc\x16#\x9b\x81\xc7\xf7\xf6\x91\xd5E\x91\xb2~q\x96\xa7LS\x9c\x1a*\xeb\xe7\xa7\xfa\xc9\xea\x99\xd9\xe1\xb2k\xb3\xd0\x0fl\x9a\x939\x01\xa13:\xa1\xb2\xf5\x01^@\x08D\x80\x0f\xd2\x00'\x8b\x9f\x9351\xa8W\xbax\x99D\x98$\xc8bz\xa0;\x85\xcfd\x8b\xb8\x96\xe6L\x1b+k;\x00&\xf6\xdd\xd4k}\xcf\x98\xdcO\x10\xe3\xdaLm\xb91\x00\xeee\x00\xc053\xb5\xe8c\x00\x1cv\x07@\xf9\xecLM\xef;\x00t\xb4\xb7\xb5\x93+\x95dO\xd50\x13\x07, \x01y\xa0\x04T\x81\x16\xd0\x03\xc6\xc0\x02\xd8\x00{\xe0\x0c\xdc\x81\x0f\x08\x00! \x02\xc4\x82\xc5\x80\x0b\x04\xe8\xbc\x12\xb0\x14\xac\x00kA\x01(\x02[\xc0\x0eP\x0e\xf6\x80\xfd\xa0\x06\x1c\x01\xc7A38\x03.\x80\xcb\xe0:\xb8\t\xee\x82\xc7\xa0\x17\x0c\x80W`\x04|\x04c\x10\x04\xe1!*D\x87T!m\xc8\x002\x83l \x16\xe4\n", '\xf9@AP\x18\x14\x0b\xc5CI\x90\x08\x92B+\xa0uP\x11T\x02\x95C\xfb\xa0Z\xe8\x18t\x1a\xba\x00]\x85z\xa0\x87P\x1f4\x0c\xbd\x83\xbe\xc2\x08L\x81\x95`M\xd8\x10\x9e\r\xb3`\x0f8\x10\x8e\x80\x17\xc1Ip\x06\x9c\x0b\xe7\xc3\x9b\xe02\xb8\x1a>\x0c7\xc1\x17\xe0\xeb\xf0]\xb8\x17~\x05\x8f"\x00!#\x0cD\x07\xb1@X\x88\x17\x12\x82\xc4!\x89\x88\x04Y\x85\x14"\xa5H5\xd2\x80\xb4"\x9d\xc8m\xa4\x17y\x8d|\xc1\xe00t\x0c\x13c\x81q\xc6\xf8c"1\\L\x06f\x15\xa6\x18S\x8e\xa9\xc14a:0\xb71}\x98\x11\xcc\x0f,\x15\xab\x815\xc3:a\xd9\xd8\x18l\x12v)\xb6\x00[\x8a=\x88=\x85\xbd\x84\xbd\x8b\x1d\xc0~\xc4\xe1p\x0c\x9c\x11\xce\x01\xe7\x8f\x8b\xc5%\xe3\x96\xe3\x8aqU\xb8F\\\x1b\xae\x07\xd7\x8f\x1b\xc5\xe3\xf1\xaax3\xbc\x0b>\x04\xcf\xc1g\xe1\x0b\xf0\xbb\xf0\x87\xf1\xe7\xf1\xb7\xf0\x03\xf8\xcf\x042A\x9b`C\xf0%\xc4\x11D\x84<B)\xa1\x8ep\x8ep\x8b0H\x18#*\x10\r\x88N\xc4\x10"\x8f\xb8\x8c\xb8\x99x\x80\xd8J\xbcA\x1c \x8e\x91\x14IF$\x17R\x04)\x99\xb4\x96TFj ]"=!\xbd\'\x93\xc9\xbadG\xf2|\xb2\x90\xbc\x86\\F>J\xbeB\xee#\x7f\xa1\xd0(\xa6\x14/\xcaB\x8a\x94\xb2\x89r\x88\xd2FyHyO\xa5R\r\xa9\xee\xd48j\x16u\x13\xb5\x96z\x91\xfa\x8c\xfaY\x8e.g)\xc7\x96\xe3\xc9\xad\x96\xab\x90k\x92\xbb%\xf7F\x9e(o \xef!\xbfX>W\xbeT\xfe\x84\xfc\r\xf9\xd7\n', 'D\x05C\x05/\x05\x8e\xc2*\x85\n', '\x85\xd3\n', '\xf7\x15F\x15\xe9\x8a\xd6\x8a!\x8ai\x8a\xc5\x8au\x8aW\x15\x87hx\x9a!\xcd\x87\xc6\xa3\xe5\xd3\xf6\xd3.\xd2\xfa\xe9\x08]\x8f\xeeE\xe7\xd2\xd7\xd1\x0f\xd0/\xd1\x07\x94pJFJl\xa5d\xa5"\xa5#J\xddJ#\xca4\xe59\xcaQ\xca9\xca\x15\xcag\x95{\x19\x08\xc3\x90\xc1f\xa4263\x8e3\xee1\xbe\xce\xd2\x9c\xe51\x8b?k\xe3\xac\x86Y\xb7f}RQWqW\xe1\xab\x14\xaa4\xaa\xdcU\xf9\xaa\xcaT\xf5QMQ\xdd\xaa\xda\xac\xfaT\r\xa3f\xaa6_m\xa9\xdan\xb5Kj\xaf\xd5\x95\xd4\x9d\xd5\xb9\xea\x85\xea\xc7\xd5\x1fi\xc0\x1a\xa6\x1aa\x1a\xcb5\xf6kti\x8cjji\xfai\x8a5wi^\xd4|\xad\xc5\xd0r\xd7J\xd6\xda\xaeuNkX\x9b\xae\xed\xaa-\xd4\xde\xae}^\xfb%S\x99\xe9\xc1Le\x961;\x98#:\x1a:\xfe:R\x9d}:\xdd:c\xbaF\xba\x91\xbay\xba\x8d\xbaO\xf5Hz,\xbdD\xbd\xedz\xedz#\xfa\xda\xfa\xc1\xfa+\xf4\xeb\xf5\x1f\x19\x10\rX\x06\x02\x83\x9d\x06\x9d\x06\x9f\x0c\x8d\x0c\xa3\r7\x186\x1b\x0e\x19\xa9\x18\xb1\x8dr\x8d\xea\x8d\x9e\x18S\x8d\xdd\x8c3\x8c\xab\x8d\xef\x98\xe0LX&)&U&7MaS;S\x81i\x85\xe9\r3\xd8\xcc\xdeLhVe\xd6c\x8e5w4\x17\x99W\x9b\xdf\xb7\xa0XxXd[\xd4[\xf4Y2,\x83,\xf3,\x9b-\xdf\xcc\xd6\x9f\x1d7{\xeb\xec\xce\xd9?\xac\xec\xacR\xad\x0eX=\xb6\xa6Y\x07X\xe7Y\xb7Z\xbf\xb31\xb5\xe1\xdaT\xd8\xdc\xb1\xa5\xda\xfa\xda\xae\xb6m\xb1};\xc7l\x0e\x7f\xce\xee9\x0f\xec\xe8v\xc1v\x1b\xec\xda\xed\xbe\xdb;\xd8K\xec\x1b\xec\x87\x1d\xf4\x1d\xe2\x1d*\x1d\xee\xb3\x94X\xa1\xacb\xd6\x15G\xac\xa3\xa7\xe3j\xc73\x8e_\x9c\xec\x9d\xb2\x9c\x8e;\xfd\xe5l\xe1\x9c\xe2\\\xe7<4\xd7h.\x7f\xee\x81\xb9\xfd.\xba.\x1c\x97}.\xbd\xaeL\xd7x\xd7\xbd\xae\xbdn:n\x1c\xb7j\xb7\xe7\xeez\xee<\xf7\x83\xee\x83\x1e&\x1e\xc9\x1e\x87=\xdexZyJ<Oy~\xf2r\xf2Z\xe9\xd5\xe6\x8dx\xfby\x17zw\xfb\xd0|"}\xca}\x9e\xf9\xea\xfa&\xf9\xd6\xfb\x8e\xf8\xd9\xf9-\xf7k\xf3\xc7\xfa\x07\xfao\xf5\xbf\xcf\xd6ds\xd9\xb5\xec\x91\x00\x87\x80\x95\x01\x1d\x81\x94\xc0\xf0\xc0\xf2\xc0\xe7A\xa6A\x92\xa0\xd6`88 x[\xf0\x93y\x06\xf3D\xf3\x9aC@\x08;d[\xc8\xd3P\xa3\xd0\x8c\xd0_\xe7\xe3\xe6\x87\xce\xaf\x98\xff"\xcc:lEXg8=|Ix]\xf8\xc7\x08\xcf\x88\xcd\x11\x8f#\x8d#\xa5\x91\xedQ\xf2Q\x0b\xa3j\xa3>E{G\x97D\xf7\xc6\xcc\x8eY\x19s=V-V\x18\xdb\x12\x87\x8f\x8b\x8a;\x187\xba\xc0g\xc1\x8e\x05\x03\x0b\xed\x16\x16,\xbc\xb7\xc8hQ\xce\xa2\xab\x8b\xd5\x16\xa7.>\xbbD~\tg\xc9\x89xl|t|]\xfc7N\x08\xa7\x9a3\x9a\xc0N\xa8L\x18\xe1zqwr_\xf1\xdcy\xdby\xc3|\x17~\t\x7f0\xd1%\xb1$q(\xc9%i[\xd2\xb0\xc0MP*x-\xf4\x12\x96\x0b\xdf&\xfb\'\xefI\xfe\x94\x12\x92r(e<5:\xb51\x8d\x90\x16\x9fvZD\x13\xa5\x88:\xd2\xb5\xd2s\xd2{\xc4f\xe2\x02qo\x86S\xc6\x8e\x8c\x11I\xa0\xe4`&\x94\xb9(\xb3%K\t58]Rc\xe9zi_\xb6kvE\xf6\xe7\xa5QKO\xe4(\xe6\x88r\xba\x96\x99.\xdb\xb8l0\xd77\xf7\x97\xe5\x98\xe5\xdc\xe5\xed+tV\xac]\xd1\xb7\xd2c\xe5\xbeU\xd0\xaa\x84U\xed\xab\xf5V\xe7\xaf\x1eX\xe3\xb7\xa6f-im\xca\xda\xdf\xf2\xac\xf2J\xf2>\xac\x8b^\xd7\x9a\xaf\x99\xbf&\xbf\x7f\xbd\xdf\xfa\xfa\x02\xb9\x02I\xc1\xfd\r\xce\x1b\xf6\xfc\x84\xf9I\xf8S\xf7F\xdb\x8d\xbb6\xfe(\xe4\x15^+\xb2**-\xfaV\xcc-\xbe\xf6\xb3\xf5\xcfe?\x8foJ\xdc\xd4\xbd\xd9~\xf3\xee-\xb8-\xa2-\xf7\xb6\xbam\xad)Q,\xc9-\xe9\xdf\x16\xbc\xadi;s{\xe1\xf6\x0f;\x96\xec\xb8Z:\xa7t\xcfN\xd2N\xe9\xce\xde\xb2\xa0\xb2\x96]\xfa\xbb\xb6\xec\xfaV.(\xbf[\xe1Y\xd1X\xa9Q\xb9\xb1\xf2S\x15\xaf\xea\xd6n\xf7\xdd\r{4\xf7\x14\xed\xf9\xbaW\xb8\xf7\xc1>\xbf}M\xd5\x86\xd5\xa5\xfbq\xfb\xb3\xf7\xbf8\x10u\xa0\xf3\x17\xd6/\xb5\x07\xd5\x0e\x16\x1d\xfc~Ht\xa8\xb7&\xac\xa6\xa3\xd6\xa1\xb6\xb6N\xa3ns=\\/\xad\x1f>\xbc\xf0\xf0\xcd#\xdeGZ\x1a,\x1a\xf652\x1a\x8b\x8e\x82\xa3\xd2\xa3/\x8f\xc5\x1f\xbbw<\xf0x\xfb\t\xd6\x89\x86\x93\x06\'+O\xd1O\x156AM\xcb\x9aF\x9a\x05\xcd\xbd-\xb1-=\xa7\x03N\xb7\xb7:\xb7\x9e\xfa\xd5\xf2\xd7Cgt\xceT\x9cU>\xbb\xf9\x1c\xe9\\\xfe\xb9\xf1\xf3\xb9\xe7G\xdb\xc4m\xaf/$]\xe8o_\xd2\xfe\xf8b\xcc\xc5;\x1d\xf3;\xba/\x05^\xbar\xd9\xf7\xf2\xc5N\x8f\xce\xf3W\\\xae\x9c\xb9\xeat\xf5\xf45\xd6\xb5\xe6\xeb\xf6\xd7\x9b\xba\xec\xbaN\xfdf\xf7\xdb\xa9n\xfb\xee\xa6\x1b\x0e7Zn:\xdel\xed\x99\xdbs\xee\x96\xdb\xad\x0b\xb7\xbdo_\xbe\xc3\xbes\xfd\xee\xbc\xbb=\xf7"\xef=\xb8\xbf\xf0~\xef\x03\xde\x83\xa1\x87\xa9\x0f\xdf>\xca~4\xf6x\xcd\x13\xec\x93\xc2\xa7\n', 'OK\x9fi<\xab\xfe\xdd\xe4\xf7\xc6^\xfb\xde\xb3}\xde}]\xcf\xc3\x9f?\xee\xe7\xf6\xbf\xfa#\xf3\x8fo\x03\xf9/\xa8/J\x07\xb5\x07k\x87l\x86\xce\x0c\xfb\x0e\xdf|\xb9\xe0\xe5\xc0+\xf1\xab\xb1\xd7\x05\x7f*\xfeY\xf9\xc6\xf8\xcd\xc9\xbf\xdc\xff\xea\x1a\x89\x19\x19x+y;\xfe\xae\xf8\xbd\xea\xfbC\x1f\xe6|h\x1f\r\x1d}\xf61\xed\xe3\xd8\xa7\xc2\xcf\xaa\x9fk\xbe\xb0\xbet~\x8d\xfe:8\xb6\xf4\x1b\xfe[\xd9w\x93\xef\xad?\x02\x7f<\x19O\x1b\x1f\x17s$\x9cI+\x80\xa0\t\'&\x02\xf0\xee\x10\x00\xd4X\xd4+\xdc\x04\x80$7\xe5\x8b\'\x03\x9a\xf2\xf2\x93\x04\xfe\x8e\xa7\xbc\xf3d\xd8\x03\xb0\xbf\r\xf5"(\x06\xa0^\xa4j\r\x00\x06(\xd3\xd0\x9c\xb0E\x11\xee\x00\xb6\xb5\x95\xe5?#3\xd1\xd6fJ\x8b\x82\xbaK\xec\xe7\xf1\xf1\xf7\x9a\x00\xe0[\x01\xf8.\x19\x1f\x1f\xab\x1a\x1f\xff\x8e\xfao\xe4!\x00m\x19S~|"p\xe8_J\x89:\x0cUyv0\x13\xc1\x7f\xc6?\x00\xea\xa4\xff\x86H\x07*\xad\x00\x00\x01\x9biTXtXML:com.adobe.xmp\x00\x00\x00\x00\x00<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.4.0">\n', '   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n', '      <rdf:Description rdf:about=""\n', '            xmlns:exif="http://ns.adobe.com/exif/1.0/">\n', '         <exif:PixelXDimension>19</exif:PixelXDimension>\n', '         <exif:PixelYDimension>18</exif:PixelYDimension>\n', '      </rdf:Description>\n', '   </rdf:RDF>\n', '</x:xmpmeta>\n', '\x92\xfc\xe9\xf6\x00\x00\x01\xdcIDAT8\x11\xad\x94\xdfM\x1cA\x0c\xc6?\xcf\xcc\xbe\x11@\xa9 u\xa0\x1c\xa2\x03\x8aH\x0b\x89\x94\x16\x82\xeeJ\xa0\x88T\x90\x874\x92\xe7D,\xdc\xf3\xee\x8c\xf9ya\xc2\xe9 \x12\x87\xe2\x95\xd6\xf3\xc7\xfe\xc6\x1e\x7fc\xbb\xbb\xbdu7W\xae\xae)\x15e\xb9Rn\x9a\xbdH6+M\xae6\x984I%\x9bfK\x12\xb6B\xbb5\x15g?\x99Z5\xc6\x8b\xfb\xa4Z\x92\xbe\xfc\x18u\x88\xacW\xa7\x80\x9aR\xe3\xb08\xfbf\xbb\xf5CA\xf6\x0f\xdc\x9c\xbfW\xf6\x16\x19\xd5\xfd\xbd\x83\xe7$\xaaVH\x93+\xfa\x0f\xc2=G\xa6\x1e\xf9"\xd7\x97\x1f\x16\x1d\xbfO\xdf\x7f\xfd\x1d\xf7\xf5\x97\xd6\xba-\xa5\x90G\x01Z\xa6:\x8f\xd2\x1d\x02 \xc6]\xc7v\x1fw\xdd}\x1et\xa2\xcaN\x9a\x94\xb7K\x18\x86t\xd0e\xf2\xf8\xdb_\xdb\xb5\r\x8a\xc0&\n', '\xe0\x0fiv\x90}\xa7\x0e\xd8\x9d\xfb|\xd7\xce=\xc3\xcb\x14<{\x8a\xac\x1bv\x1d\x0e\x1d\xa4;\xbf\xb4\x96\xa2\x88\xfcl\xbc\x19\xfd\xf3\xcfm\xf7\x7f\x93\xde\\\x1c\xa9R\xc8\xd2\xd2\xbf#{-rk\x03\xa4\x85\x1e\xaaI\xeb\x8f\'\xaf\xf5{f\xf7-|\t\xc8\xad*%\xee\xac\xc2\xde\xcd\xeap\xc0\xab\xf3\xd3x\x9aD\x14<\xcb\xb2\xdft\x8d<U\xd9@\x90\x00\x1b\x1d!\xca\xbc\x14\x19\x0e\xce\x0c\xbe\xee\xdc\xe9\xd5\xea\x1dl"\x00\x1f\x82\n', '\xf2\xb8x|\x88Me\x98]\x80\xaaE\xce\xf0\xc5(s\xe5\x13@\xf4&N}\x92\xf5\xea\x88\t\xb9\x10\xce\x90*\xfb\x94q\xc6>\xb8J\x8eeyM\xac\xe5\x16,6e\x98\x9chK\xd1\xb2\xc28\xee"d}v\xbc\x90(z\x9f\xe1\x14Y\x84\xa5\x91F\x99y\xe2t\r\xfb3\x8e\xd0\x8d-\xc0"\xf7\x16\xa4\xe1\x9d1\xa4\x19\xbaf\x80\x97\xce\xb2DOTX+s\xd9\x14N\x98Y#3\x0e\x8b\xfey\x0f\x08\xf5\xf5\xc8\xe0\xdd\\\x98\x00\x00\x00\x00IEND\xaeB`\x82']:
        image_file.write(line)

2

R, 189 bayt

image(t(matrix(as.integer(sapply(c(32736,28784,62968,62968,64504,65528,63736,63352,63359,64254,65532,63736,63352,62840,29936,32736),intToBits)[1:16,]),nr=16)),ax=F,col=c("white","#62B0DF"))

Netlik için girintili:

image(t(matrix(as.integer(sapply(c(32736,28784,62968,62968,
                                   64504,65528,63736,63352,
                                   63359,64254,65532,63736,
                                   63352,62840,29936,32736),
                                 intToBits)[1:16,]),nr=16)),
      ax=F,col=c("white","#62B0DF"))

Eski bir cevabımdan yöntemi utanmadan çalıyorum : 16 sayının temel-2 gösterimini alıyorum, 16x16'lık bir matrisin içinde 1'lerin ve 0'ların temsili yapıyorum ve onu olduğu gibi çiziyorum.

Sonucun ekran görüntüsü



2

Python 2,21 bayt

from PIL import Image
I=Image.new('P',(16,16))
I.putdata(map(int,bin(eval('0xc003'+'0'*12+'718e4a5072164252418c'+'0'*8+'8001c003ff1fff3fff7f'))[2:]))
I.putpalette([111,174,221]+[255]*3)
I.resize((64,64)).show()

2

05AB1E , 49 bayt

•(!o4¯ZD5µå¹p‹^Ô%í2\AO-Ö"w™ÈõžvlXäà`AF•bT„.@‡19ô»

Çevrimiçi deneyin!

...@@@@@@@@@@@@....
.@@@@@@@@@@@@@@@@..
.@@@@@@@@@@@@@@@@..
.@@@@@@@@@@@@@@@@..
.@...@@@..@@@...@..
.@.@@.@.@@.@.@@@@..
.@...@@.@@@@.@..@..
.@.@@@@.@@.@.@@.@..
.@.@@@@@..@@@..@@..
.@@@@@@@@@@@@@@@@..
..@@@@@@@@@@@@@@...
...@@@@@@@@@@@@....
.........@@@.......
.........@@........
.........@.........

2
Hm. ASCII karakterlerinin burada piksellerin üzerinde durduğunu varsayalım, bu "en az 64x64 piksel" değildir.
DLosc

2

Excel VBA, 252 246 245 237 Bayt

Taylor Scott sayesinde 6 bayt kaydedildi.
Taylor Scott'tan ilham alan 8 bayt daha kaydedildi

Sub p()
Set s=Shapes.AddShape(106,0,0,99,82)
With s.TextEffect
.Text="PCG
.FontSize=56
.Alignment=2
End With
s.TextFrame2.WordWrap=0
s.Adjustments.Item(1)=.1
s.Adjustments.Item(2)=.9
s.Line.Visible=0
s.Fill.ForeColor.RGB=14659682
End Sub

Kod, bir çalışma sayfasının kod sayfasından çalıştırılmalıdır ve şekli bu çalışma sayfasına ekleyecektir. Fantezi bir şey değil ama doğrudan simgenin dayandığı yuvarlatılmış dikdörtgen belirtme çizgisini kullanıyor. (Çünkü AddShape, 106karşılık gelir msoShapeRoundedRectangularCallout.)

ikon

Biçimlendirme fazla bir şey katmaz ancak okumayı kolaylaştırır:

Sub p()
    Set s = Shapes.AddShape(106, 0, 0, 99, 82)
    With s.TextEffect
        .Text = "PCG"
        .FontSize = 56
        .Alignment = 2
    End With
    s.TextFrame2.WordWrap = 0
    s.Adjustments.Item(1) = 0.1
    s.Adjustments.Item(2) = 0.9
    s.Line.Visible = 0
    s.Fill.ForeColor.RGB = 14659682
End Sub

Ayrıca, hemen penceresinde 1 bayt daha uzun olması gereken tek satırlı bir çözüm var:

Set s=Sheet1.Shapes.AddShape(106,0,0,99,82):s.TextEffect.Text="PCG":s.TextEffect.FontSize=56:s.TextEffect.Alignment=2:s.TextFrame2.WordWrap=0:s.Adjustments.Item(1)=.1:s.Adjustments.Item(2)=.9:s.Line.Visible=0:s.Fill.ForeColor.RGB=14659682

Sen kaldırarak ByteCount aşağı alabilirsiniz ()içinde p() ve dönüştürme With ActiveSheet. ... içinWith[Sheet1]. ...
Taylor Scott

@TaylorScott Parantezleri bırakmak iyi bir nokta ve otomatik biçimlendirmeyi kaldırırken daha önce göz ardı ettiğim bir şey. Sheet1Yine de, ilk sayfanın adlandırıldığını varsaydığımdan emin değilim . Sanırım kullanıcının kodu yeni bir dosyada çalıştırdığını varsayabiliriz.
Mühendis Tost

Sanırım, kullanıcının açık hücrelerden girdi aldığını veya bir değişkenin başlatılmadığını ve varsayılan durumda kullanıcının varsayılan Sheet1nesne üzerinde olduğunu varsaydığını muhtemelen kabul ettiğiniz bir norm olması gerektiğini düşündüğümüz için çözümünüzün bir parçası olarak giriş / çıkış koşulunun bir parçası
Taylor Scott

Yani görünüşte bir var Sheet1nesne - Eğer değiştirerek byte damla böylece With[Sheet1].ileWith Sheet1.
Taylor Scott

@TaylorScott Ha, elbette var. Boş, yeni bir dosya olduğunu varsayarsak Sheet1, ilk sayfanın varsayılan kod adıdır. Güzel bir% 0.4 bayt azalma.
Mühendis Toast,

1

MATLAB, 153 150 140 bayt

a=65535;imshow(imresize(dec2bin([16380,a,a,a,36465,46511,36329,48557,48755,a,a,32766,16380,32*[7 6 4]],16)-47,8,'n'),[1 1 1;0.39 0.69 0.88])

Kod, 16 bitlik bir sayı dizisi alır (ne yazık ki önceden kaydedilmiş bir ikili dosyadan okuma dışında bayt sayısını azaltan kodlamanın bir yolu yoktur). EDIT: Dizinin nasıl yapıldığına dair bir miktar yaratıcılıkla, 3 bayt kurtardım ve biraz daha fazla ve ekstra bir değişkenle bunun üzerine 10 tane daha kaydedebilirim.

Bu dizi ile, ascii '1' in maviyi temsil ettiği ve ascii '0' 'ın beyaz olduğu ikili bir dizgeye dönüştürülür. Dizi bu noktada 2B'dir, çünkü 16 sayının her biri 16 karakterli bir dize haline gelir.

Bunu, her bir elemanın bir pikseli temsil ettiği 1 ve 2'ler dizisine (sonraki bit için gerekli) dönüştürmek için 47'yi çıkarırım. Yine bu 2D olarak kalıyor ve bizim görüntü verimiz.

Görüntü daha sonra en az gerekli 64x64px minimum boyutta bir görüntü üretmek için en yakın komşuyu kullanarak 8 faktörü ile ölçeklendirilir - aslında 128x128'dir, çünkü bir şekilde 8'i almak için 64'e 16'ya böldüm> _ < Sor!).

Sonunda bu, herhangi birinin 1'inin beyaz olduğu ve herhangi birinin 2'nin # # 62B0DF mavi tonuna dönüştüğü bir renk haritası kullanılarak görüntülenir.

Bu çıktı:

Logo


1

İşlem, 211 bayt

noStroke();int[]n={49155,0,173175182,1245866062,12674,-2147418112,-117456893,-16777985};for(int x=0;x<256;x++){if(((n[floor(x/32)]>>(x%32))&1)>0)fill(255);else fill(98,176,223);rect(4*(x%16),4*floor(x/16),4,4);}

Pikselleri imzalı tamsayıların içine koymak (en etkili yol gibi görünüyor, belki 2 ^ 64 tamsayıları deneyeceğim) ve sonra bunları bir çerçeveye basıyorum.

görüntü tanımını buraya girin


1

Swift (Bahçesi), 599 Bayt

import UIKit;class P:UIView {var b=UIBezierPath();func a(x:CGFloat,y:CGFloat){b.addLineToPoint(CGPoint(x:x,y:y))};override func drawRect(rect:CGRect){UIColor(red:0.384,green:0.690,blue:0.875,alpha:1).setFill();UIBezierPath(roundedRect:CGRectMake(0,0,200,159),cornerRadius:45).fill();b.moveToPoint(CGPoint(x:102, y:146));a(102,y:200);a(157,y:146);a(102,y:146);b.closePath();b.fill();"PCG".drawInRect(CGRectMake(35,41,200,121),withAttributes:[NSFontAttributeName: UIFont(name:".AppleSystemUIFontBold",size: 64)!,NSForegroundColorAttributeName:UIColor.whiteColor()])}}
P(frame: CGRectMake(0,0,200,200))

Swift'de çizim yapmak oldukça kolay olduğundan ve genellikle bu şekilde golf oynamadığından, bunu denemeye karar verdim. Metin ile değerli baytları kaybetme sona erdi ... Lanet olsunNSDescriptiveVariableNames !

İşte oyun alanında nasıl göründüğü:

Sonuç

Sanırım CGRectMakebir işlevi diğer nesnelere bölerek , işlevdeki nesneleri gruplayarak vs. golf oynayabilirim .


Önde gelen sıfırları, 0,384 ile 0,384 gibi, kayan noktalardan kaldıramadınız mı? veya hızlı bunu desteklemiyor mu?
sagiksp

1

PHP, 145 bayt, rakip değil

for(;$i<64;)echo strtr(sprintf("%016b\n",[49155,0,0,0,29070,19024,29206,16978,16780,0,0,32769,49155,65311,65343,65407][$i++/4]),["####","    "]);

Onun yerine boş ve renkleri kullanmalıyım, ama çok yorgunum.
Sanırım bu sayıya 10 bayt kadar katacak, belki daha fazla.


2
Neden rekabet etmiyor?
Kodos Johnson

@KodosJohnson Renk yok. Ve OP "boşluk olmayan karakterler" dedi
Titus

1

Excel VBA, 178 Bayt

Anonim VBE Giriş yapmayan ve PCG Favicon'u (tam olarak yukarıdaki istemde olduğu gibi) aralığa çıkaran acil pencere işlevi

Cells.RowHeight=48:[C1:N13,A2:P11,B12:O12,I14:I16,J14:J15,K14].Interior.Color=&HDFB062:[B5:B9,C5:D5,C7:D7,E6,G6:G8,H5:I5,J6,J8,H9:I9,L6:L8,O7:O9,M5:O5,M9:N9,N7].Interior.Color=-1

PCG Favicon


0

C (gcc) , 188 bayt

y;main(x){int d[]={16380,~0,~0,~0,36465,62893,38833,46525,52861,~0,~0,32766,16380,1792,768,256};for(;y<64;y++){for(x=0;x<16;)printf("\33[48;5;%dm%*s",(d[y/4]>>x++)&1?14:7,8,"");puts("");}}

Çevrimiçi deneyin!

128 yatay ve 64 dikey renkli boşluk yazdırmak için ANSI çıkış kodlarını kullanır.

ANSI PCG (Resim yeniden boyutlandırıldı.)


0

C ++ ile SFML , 607 bayt

#include<SFML\Graphics.hpp>
using namespace sf;using c=Color;using x=Vector2f;RenderWindow w(VideoMode(324,324),"");void p(){RectangleShape r({224.f,144.f});r.setFillColor(c(98,176,223));Vertex v[3]={x(162,324),x(243,224),x(162,224)};for(int i=0;i<3;++i)v[i].color=c(c(98,176,223));Font f;if(!f.loadFromFile("a.ttf"))return;Text t("PCG",f,150);t.setPosition(50,20);while(w.isOpen()){Event e;while(w.pollEvent(e))if(e.type==0)w.close();w.clear(c::White);for(int i=0;i<628;++i){r.setPosition(50+cos(float(i)/100.f)*50,50+sin(float(i)/100.f)*50);w.draw(r);}w.draw(v,3,PrimitiveType(3));w.draw(t);w.display();}}

Fonksiyonu çağıran kod:

int main() {
    w.setFramerateLimit(60);
    w.setVerticalSyncEnabled(true);
    p();
}

Gereksinimler :

  • a.ttfYürütülebilir dosyanın çalıştığı geçerli dizinde adı verilen geçerli bir ttf dosyasına sahip olmanız gerekir , böylece metni görüntülemek için fontları yükleyebilirsiniz.

  • Yürütülebilir dosyanın çalıştığı dizinde ilgili SFML DLL dosyalarına sahip olmanız gerekir.

Sonuç:

C ++ ve SFML ile PPGC Simgesi

Açıklamalar:

#include<SFML\Graphics.hpp>

using namespace sf;
using c=Color;
using x=Vector2f;

//Create the window that will display stuff. 324x324 dimensions
RenderWindow w(VideoMode(324,324),"");

void p(){

    //Creation of the rectangle
    RectangleShape r({224.f,144.f});
    r.setFillColor(c(98,176,223)); //Logo Color wanted

    //Vertex to draw a blue triangle
    Vertex v[3]={x(162,324),x(243,224),x(162,224)};
    for(int i=0;i<3;++i)
        v[i].color=c(c(98,176,223));

    //Creation an load of the font
    Font f;
    if(!f.loadFromFile("a.ttf"))
        return;

    //Creating the text object that will be used to draw the PCG text
    Text t("PCG",f,150);
    t.setPosition(50,20);

    //Main loop, will run while the window is open
    while(w.isOpen()){
        Event e;
        while(w.pollEvent(e))
            //sf::Event::Close int value is 0
            //It will be triggered if you click on the red cross, or press Alt+F4
            if(e.type==0)
                w.close();

        //Clear the window in white
        w.clear(c::White);

        //6.28 = 2*PI, the number of radians that nearly equals 360 degrees
        for(int i=0;i<628;++i){
            //It draws 628 rectangles, the top left part of the rectangle will do a circle
            //Same for every points of the rectangle
            r.setPosition(50+cos(float(i)/100.f)*50,50+sin(float(i)/100.f)*50);
            w.draw(r);
        }

        //sf::PrimitiveType::Triangle int value is 3
        w.draw(v,3,PrimitiveType(3));
        //Draw the text
        w.draw(t);
        w.display();
    }
}

0

tcl / tk, 113

grid [canvas .c]
.c cr o 2 2 66 48 -f #62B0DF
.c cr t 36 24 -te PCG -fi #FFF
.c cr p 30 66 30 47 44 47 -f #62B0DF

Tcl / tk, 144

grid [canvas .c]
.c create oval 2 2 66 48 -fill #62B0DF
.c create text 36 24 -text PCG -fill #FFF
.c create poly 30 66 30 47 44 47 -fill #62B0DF

pcg logosu

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.