Tạo Favicon PPCG


21

Đến ngày 1 tháng 11, Câu đố lập trình và Code Golf sẽ tốt nghiệp, vì vậy trong 11 tháng tới, chúng tôi sẽ muốn lưu lại một số ký ức từ khi chúng tôi bị vô hiệu hóa.

Viết chương trình sản xuất favicon PPCG, xem bên dưới.

nhập mô tả hình ảnh ở đây

  • Hình ảnh phải có ít nhất 64x64 pixel.
  • Màu xanh phải là màu # 62B0DF. Nền có thể là màu trắng hoặc xám nhạt.
  • Hình ảnh không cần phải được pixel như ở đây.
  • Ngoài ra, tạo văn bản (có kích thước ít nhất 64x64 ký tự không phải khoảng trắng) bằng cách sử dụng mã màu ANSI sáng chuẩn của Cyan và White.
  • Xây dựng hình ảnh và nhập logo PPCG không được phép.

Đây là mã golf, vì vậy các quy tắc tiêu chuẩn được áp dụng. Mã ngắn nhất trong byte thắng.


10
Nghiêm túc mà nói, ý của bạn là gì khi in ? Xuất ra các byte của hình ảnh chính xác này? Hiển thị hình ảnh trên màn hình? Thứ gì khác?
Dennis

3
Không có bất kỳ hạn chế nào về cách hình ảnh có thể được hiển thị hoặc tạo ra, hoặc bất kỳ hướng dẫn nào loại câu trả lời nào nên được coi là thú vị, điều này là quá rộng cho một cuộc thi phổ biến.
Dennis

6
@ LegionMammal978 Thẻ cuộc thi phổ biến không phải là lý do cho một thông số mơ hồ. Thông số kỹ thuật của một cuộc thi phổ biến nên được tổ chức theo cùng tiêu chuẩn với bất kỳ loại thử thách nào khác. Thẻ này dành cho những thách thức trong đó con người đánh giá chất lượng câu trả lời tốt hơn máy tính (ví dụ như sự tương đồng trực quan trong thử thách xử lý hình ảnh), không dành cho những thách thức mà người tham gia không biết rõ câu trả lời tốt sẽ như thế nào. "Hầu hết các phiếu bầu" không phải là một tiêu chí chiến thắng khách quan nếu không có hướng dẫn về cách nhắm đến những phiếu bầu đó.
Martin Ender

7
Tôi đề nghị ít nhất không cho phép tải logo từ bất kỳ tài nguyên nào.
nicael

8
@Dennis Ông có nghĩa là in nó bằng máy in đám mây gần nhất
Trình tối ưu hóa

Câu trả lời:


18

Bash (OSX), 33 27 23 18 byte

Bạn đã nghe người đàn ông, bất cứ cách nào chúng tôi thích.

mở http: yon.se/q

Tôi biết rằng đây là một cuộc thi phổ biến. Nhưng này, khi bạn có thể viết mã golf, tại sao không?

Bây giờ nó là một mã golf. \ o / Điều này hợp lệ tại thời điểm đăng.

Thậm chí có một ngoại lệ được tạo ra cho tôi tại một số điểm! Nhưng, như @AlexA. chỉ ra...

" Bạn có thể sử dụng bất kỳ phương pháp nào bạn muốn (ngoại trừ tải hình ảnh, ngoại trừ phản hồi của VoteToClose) " Không công bằng khi cho phép ngoại lệ cho người dùng / câu trả lời cụ thể. - Alex A.

Tôi đồng ý với điều này, và, như vậy, không muốn điều này được chọn làm câu trả lời. Điều đó không có nghĩa là tôi sẽ vẫn không cố gắng đánh gôn nhiều hơn. ;)

Cảm ơn @ ΚρΚρτ

Cảm ơn @ ev3commander vì đã loại bỏ KHÁC 5 byte với một URL thậm chí ngắn hơn, ngắn hơn!

Cảm ơn @kennytm đã chỉ ra rằng tôi có thể giảm kích thước giao thức xóa các trích dẫn, tiết kiệm cho tôi thêm 4 byte!


1
@VoteToC Đóng Bạn có thể sử dụng URL ngắn hơn này để giảm số byte:http://goo.gl/gviJDX
Kritixi Lithos

6
@manatwork Tâm lý ngược? Nó đang hoạt động.
George Reith

1
Thậm chí ngắn hơn:open http:goo.gl/gviJDX
kennytm

5
thử url này:http:yon.se/q
ev3commander

6
Liên kết là borked.
Rɪᴋᴇʀ

12

BitShift , 2795 byte

10100110010101101001010111001010110100101011100101011010010101110010101101001010111001010110100101011100101011010010101110010101101001010111001010110100101011100101011010010101110010101101111011101010000000110101001011010100011010100010101101010010101101010010101101010010101101010010101101010010101101010011010100101101010001101010010110101001100110010101111111001010111010100101011010100101011010100101011010100101011010100101011010100101011010100101011010100101011001010110100101011001100110101000000011010100010101101010010101101010010101101010010101101010010101101010010101101010010101101010010101101010011010100101101010011001100101011111110010101110101001010110101001010110101001010110101001010110101001010110101001010110101001010110101001010110010101101001010110011001101010000000110101000101011001010110100101011100101011101010010101101010011010100101101010001010110101001010110010101101001010111001010111010100110101001011010100110011001010111111100101011101010011010100010101101010011010100010101100101011101010010101100101011101010011010100010101101010010101101010011010100101101010011001100101011111110010101110101001101010010110101000110101000101011010100110101000101011010100101011010100110101000101011001010110100101011101010011010100101101010011001100101011111110010101110101001101010001010110101001010110101001101010001010110101001101010001010110010101110101001010110010101110101001101010010110101001100110010101111111001010111010100110101000101011010100101011010100101011001010110100101011101010010101101010011010100101101010001010110101001101010010110101001100110010101111111001010111010100101011010100101011010100101011010100101011010100101011010100101011010100101011010100101011001010110100101011001100110101000000011010100101101010001010110101001010110101001010110101001010110101001010110101001010110101001010110101001101010010110101000110101001000010001010111111100101011010010101110010101110101001010110101001010110101001010110101001010110101001010110101001010110010101101001010111001010110100101011001100110101000000011010100101101010001101010010110101000110101001011010100011010100101101010001101010001010110101001010110010101101001010111001010110100101011100101011010010101110010101101111011101010000000110101001011010100011010100101101010001101010010110101000110101001011010100011010100010101101010011010100101101010001101010010110101000110101001011010100011010100101101010011001100101011111110010101101001010111001010110100101011100101011010010101110010101101001010111001010111010100110101001011010100011010100101101010001101010010110101000110101001011010100011010100100001000101011111110010101101001010111001010110100101011100101011010010101110010101101001010111001010110100101011100101011010010101110010101101001010111001010110100101011100101011010010101110010101

Đầu ra này

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

  Đây có lẽ là mã ngắn nhất mà bạn thực sự vẫn có thể nhận ra logo ... Tôi đã tạo ra một ngôn ngữ khủng khiếp :(

Thử nó ở đây

Lưu ý
Điều này đã được gửi trước khi các quy tắc được thay đổi, bởi các quy tắc hiện tại câu trả lời này không hợp lệ. Tôi sẽ để nó ở đây để có thể truyền cảm hứng cho mọi người


5
Bây giờ, đừng buồn, đó là một kết quả rất đặc biệt từ một ngôn ngữ rất đặc biệt.
Sven Writes Code

12

JavaScript

Lưu ý: Câu trả lời này được đưa ra trước khi các quy tắc được thay đổi đáng kể để câu trả lời này không cạnh tranh.


Điều này in vào bảng điều khiển trình duyệt của bạn, thông qua một số xử lý chuỗi điên rồ và tuyệt vời.

Tôi đã tạo một phiên bản ngắn hơn về điều này nhưng dường như tôi không thể tìm thấy nó ở bất cứ đâu.

Chrome / Firefox

Phiên bản này chỉ tăng gấp đôi trên mỗi pixel nên trông tỉ lệ hơn

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)")})})))

Đây long_string_herelà một ppm , tôi đã viết kịch bản này một lúc trước để in một hình ảnh tùy ý lên bàn điều khiển .


Cái này hoạt động ra sao? Vâng JavaScript có một tính năng trongconsole.log đó bạn có thể cung cấp css để định kiểu thư.

Tôi ký tự unicode và màu đó là màu chính xác, được lấy từ ppm.


Để hiển thị bất kỳ hình ảnh nào khác chạy : convert my_img.png -resize 50x50 -trim -compress none -blur 1x2 -flatten -background white ppm:-, sau đó sao chép đầu ra vào<long_string_here>

Mã đầy đủ

Bởi vì điều này khá lớn, tôi đã đặt mã đầy đủ vào các pastebins để bạn có thể chạy chúng

Chrome / Firefox: pastebin

Safari: pastebin


Kết quả

nhập mô tả hình ảnh ở đây

Kết quả Firefox

Kết quả Safari


4
Bạn có thể thu nhỏ kích thước ảnh chụp màn hình một chút không? Mỗi một người trong số họ chiếm hết tài sản màn hình dọc của tôi. (Có thể một hình ảnh là đủ, tạo các liên kết còn lại).
mınxomaτ

Số byte là gì? bây giờ là code-golf
cat

11

Ruby với giày

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
    }

}

Đầu ra mẫu:

Logo PPCG được vẽ bằng Giày


10

Javascript (ES2015), 199 byte

(+72 byte CSS)

Mã của tôi in logo vào thành <body>phần của trang thông qua một số chuỗi unicode. Đề xuất cải thiện mã được chào đón (đặc biệt là cho0 tác vụ -pads)

Bản trình diễn (đã được thử nghiệm trên MacOsX / Chrome 46): http://codepen.io/anon/pen/EVBmKN?editors=011


Javascript (dòng mới được chèn để dễ đọc)

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}

Kết quả

Logo PCG


Ungolfed và giải thích

Nếu chúng tôi xem xét biểu tượng PCG 16x16 ban đầu được đăng, chúng tôi có thể mã hóa thông tin ở định dạng nhị phân.

Ví dụ, dòng đầu tiên sẽ được mã hóa thành 1100 0000 0000 0011nơi [0, 1]ánh xạ tới [blue, white]. Mỗi số nhị phân có thể dễ dàng lưu trữ trong định dạng thập phân nên 1100 0000 0000 001149155. Mảng

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

chứa tất cả thông tin (ở định dạng thập phân) về từng màu pixel. Mỗi phần tử của mảng đại diện cho một dòng để vẽ. Lưu ý rằng một số dòng là 0( dòng toàn màu xanh) hoặc chiều dài của chúng nhỏ hơn16 chữ số (một dòng bắt đầu bằng pixel màu xanh): sau đó chúng ta cần phải đệm đúng các số nhị phân này

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

Các mapchức năng thêm 15 zero bên trái cộng với số nhị phân nối. Do đó, kết quả được cắt theo 16pixel sang trái. Bây giờ mảng thực sự là

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"

Hãy nhìn kỹ hơn vào các chữ số ở trên: chúng ta gần như có thể thấy logo PCG. :)
Lưu ý rằng nếu chúng ta lưu trữ thông tin này trong mảng, chúng ta cần sử dụng 16x18 byte (288 byte). Cách tiếp cận này yêu cầu thay vì 135 byte

Bước tiếp theo là vẽ từng dòng. Xay dung

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

lặp qua mảng values(tính năng ES6) và chúng ta thêm vào phần thân

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

trong đó [...l] biểu diễn chuỗi nhị phân dưới dạng một mảng. Ví dụ, dòng đầu tiên sẽ được đọc là

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

sau đó một lần nữa chúng ta sử dụng map()để chuyển đổi từng giá trị:

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

nếu giá trị là 0thì nó trở thành LEFT SEVEN EIGHTHS BLOCK (U+2589)khoảng trắng EM SPACE (U+2003). Trong ngắn hạn nhiệm vụ này

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

chuyển đổi từng 0hoặc 1thành một khối bình phương hoặc thành một khoảng trắng: sau đó mảng được nối và cùng với một chuỗi dòng mới, được nối vào thân.

CSS tôi đã sử dụng sửa lỗi line-heightletter-spacing(Tôi đã thử nghiệm trên Chrome, do đó, kết quả có thể thay đổi đôi chút trong các trình duyệt khác)


3
control-f 0 và bạn CÓ THỂ thấy logo PPCG trong 0 và 1: D
ev3commander

@ ev3commander Khi tôi điều khiển-f, thì nó bắt đầu bị trễ, do câu trả lời của BitShift.
Đồng chí SparklePony

7

Brainfuck, 120148 byte

Câu trả lời này bây giờ là không cạnh tranh. Điều này là trước khi các quy tắc được thay đổi, và điều này hoàn toàn không có hy vọng chiến thắng như môn đánh gôn.

Mã Brainfuck để xuất giá trị hex của hình ảnh. Rất, rất, lâu.

Đây là một liên kết pastebin, và các dòng đầu tiên. https://paste.ee/p/LtcCy

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

+1 cho số byte rắn, đọc rất tốt! Chỉ cần một lưu ý: dán nó ở đó , trông giống như 120.148 byte.
nicael

Cảm ơn, tôi đưa vào thông qua chính xác truy cập đó. Tôi phải đã nhầm lẫn hoặc một cái gì đó. Đã sửa bây giờ.
Rɪᴋᴇʀ

6

Chụp , 16 khối

nhập mô tả hình ảnh ở đây
Hãy cho tôi biết nếu điều này là không hợp lệ.


Có lẽ không hợp lệ ... nhưng ai quan tâm; nó có vẻ đủ tốt
wizzwizz4

6

Javascript ES6, 461 byte

Tôi cần phải làm việc trên nén nhiều hơn.

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

Kẹo cao su , 175 byte

Một trong những lần hiếm hoi Bubblegum hữu ích cho !

Chạy trong một thiết bị đầu cuối hỗ trợ mã thoát ANSI.

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.?...

Đảo ngược hexdump với xxd -r

Đây là một ảnh chụp màn hình của đầu ra:

Ảnh chụp màn hình của đầu ra chương trình

Lưu ý: Trên máy Windows của tôi có thiết bị đầu cuối MinGW, tệp nhị phân Windows Python không xuất mã ANSI chính xác, vì vậy, ở trên python <esolangs reference implementation>.py <infile> | catnhưng nó sẽ hoạt động chính xác trên các máy Linux.


4

Javascript (ES6), 192 byte

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'

Cái này lấy phiên bản nén của đường dẫn SVG D. Không gian được loại bỏ, vì vậy tất cả các đối số phải là một số thập phân, do đó, bất kỳ số nào cũng được nhân với 20 trước khi được ghi vào svg thực tế.

Đầu ra: Bản trình diễn: https://jsfiddle.net/Luy6qj80/
nhập mô tả hình ảnh ở đây


@RikerW Nó không giống như được lấy từ một URL.
Conor O'Brien

NVM, tôi nhận ra điều này. Công việc tốt.
R

4

LibreLogo , 122 116 115 byte

Sử dụng Logo để tạo Logo . Điều này có được tính là đệ quy không?

Mã số:

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

Kết quả:

nhập mô tả hình ảnh ở đây

Giải trình:

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"

Những nỗ lực trước đây:

116 byte:

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 byte:

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 byte

Vâng, tôi đã hoàn thành điều này cho cuộc thi ban đầu, quy tắc đã được thay đổi mạnh mẽ. Đây chắc chắn không phải là mã ngắn nhất bạn có thể nghĩ ra. Nó được thiết kế cho cuộc thi phổ biến và nó tạo ra pixel favicon gốc theo pixel. Nó có một số tính năng nữa, quá. :)

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++)}

Bạn có thể gọi hàm với tối đa ba tham số:

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

mđi meta và thay đổi màu sắc cho phù hợp. Và nếu bạn thấy nó nhỏ, hãy sử dụng bđể thay đổi kích thước từ 16x16px đến 64x64px . Cuối cùnga hoạt hình logo, giống như nó được khắc vào một bảng màu xanh. Giá trị là tốc độ cho mỗi bước hoạt hình.

Ung dung

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++);       
}

Đầu ra

Mặc định

Sinh sản Favicon PPCG

Hoạt hình

Tái tạo hoạt hình Favicon PPCG


Sáu trăm tám mươi byte?! Bạn muốn làm cho câu trả lời của bạn bằng chứng bảng xếp hạng-bot?
RedClover

2

Python 3, 10.069 byte

Viết hex từ logo ban đầu sang một tệp mới.

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 byte

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"))

Với sự thụt lề cho rõ ràng:

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"))

Tôi không biết xấu hổ khi đánh cắp phương pháp từ một câu trả lời cũ của tôi : Tôi lấy đại diện cơ sở 2 gồm 16 số, biến nó thành ma trận 16x16 gồm 1 và 0 và vẽ nó như cũ.

Ảnh chụp màn hình kết quả


2

Google chặn , 140 khối

đầu vào

Sản xuất

Đầu ra

Sẽ thêm một lời giải thích nếu được yêu cầu. Hãy thử nó ở đây

Đề xuất để giảm chức năng lớn ở bên trái được chào đón!


2

Python 2, 211 byte

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 byte

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

Hãy thử trực tuyến!

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

2
Hừm. Giả sử rằng các ký tự ASCII đang đứng cho các pixel ở đây, đây không phải là "ít nhất 64x64 pixel."
DLosc

2

VBA Excel, 252 246 245 237 byte

Đã lưu 6 byte nhờ Taylor Scott.
Lưu thêm 8 byte nhờ cảm hứng từ Taylor Scott

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

Mã phải được chạy từ trang mã của trang tính và sẽ thêm hình dạng vào trang tính đó. Không có gì lạ mắt nhưng nó trực tiếp sử dụng chú thích hình chữ nhật tròn mà biểu tượng dựa trên. (Đối với AddShape, 106tương ứng với msoShapeRoundedRectangularCallout.)

Biểu tượng

Định dạng không thêm nhiều nhưng nó giúp đọc dễ dàng hơn:

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

Ngoài ra còn có một giải pháp một dòng có nghĩa là được chạy trong cửa sổ ngay lập tức dài hơn 1 byte:

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

Bạn có thể lấy bytecount xuống bằng cách loại bỏ ()trong p() và chuyển đổi With ActiveSheet. ... đểWith[Sheet1]. ...
Taylor Scott

@TaylorScott Bỏ dấu ngoặc đơn là một điểm tốt và điều mà trước đây tôi đã bỏ qua khi xóa định dạng tự động. Tuy nhiên, tôi không chắc chắn về việc giả sử rằng tờ đầu tiên được đặt tên Sheet1. Tôi cho rằng chúng ta có thể đoán người dùng chạy mã trong một tệp mới.
Kỹ sư Toast

Tôi nghĩ rằng bởi vì chúng ta đã có thể giả định rằng người dùng đang lấy đầu vào từ các ô rõ ràng hoặc một biến không được khởi tạo và ở trạng thái mặc định rằng giả sử người dùng ở trên Sheet1đối tượng mặc định có thể là một tiêu chuẩn được chấp nhận miễn là bạn đề cập rằng là một phần của điều kiện đầu vào / đầu ra như một phần của giải pháp của bạn
Taylor Scott

Vì vậy, rõ ràng có một Sheet1đối tượng - vì vậy bạn có thể giảm một byte bằng cách thay thế With[Sheet1].bằngWith Sheet1.
Taylor Scott

@TaylorScott Ha, tất nhiên là có. Nếu chúng tôi giả sử đó là một tệp mới, trống, thì đó Sheet1chỉ là tên mã mặc định của trang đầu tiên. Đó là mức giảm 0,4% byte tốt đẹp.
Kỹ sư Toast

1

MATLAB, 153 150 140 byte

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])

Mã này có một mảng gồm các số 16 bit (đáng buồn là không có cách mã hóa chúng làm giảm số byte ngoài việc đọc từ tệp nhị phân được đặt trước). EDIT: Với một chút sáng tạo trong cách tạo ra mảng, tôi đã lưu được 3 byte và với một chút nữa và một biến phụ, tôi có thể tiết kiệm thêm 10 điểm nữa.

Với mảng này, nó được chuyển đổi thành một chuỗi nhị phân trong đó ascii '1' đại diện cho màu xanh và ascii '0' có màu trắng. Mảng này là 2D tại thời điểm này vì mỗi 16 số trở thành một chuỗi 16 ký tự.

Tôi trừ 47 để chuyển đổi thành một mảng 1 và 2 (cần cho bit tiếp theo), trong đó mỗi phần tử đại diện cho một pixel. Một lần nữa điều này vẫn là 2D và là dữ liệu hình ảnh của chúng tôi.

Sau đó, hình ảnh được tăng lên theo hệ số 8 bằng cách sử dụng hàng xóm gần nhất để tạo ra một hình ảnh có kích thước tối thiểu 64x64px cần thiết - thực tế là 128x128 vì bằng cách nào đó tôi đã chia 64 cho 16 để có được 8> _ <(không hỏi!).

Cuối cùng, phần này được hiển thị bằng bản đồ màu trong đó bất kỳ 1 nào trở thành màu trắng và bất kỳ 2 nào trở thành màu xanh lam # 62B0DF cần thiết.

Đây là đầu ra:

Logo


1

Đang xử lý, 211 byte

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);}

Lưu trữ các pixel bên trong các số nguyên đã ký (dường như là cách hiệu quả nhất, tôi có thể thử 2 ^ 64 số nguyên) và sau đó in chúng trong một khung.

nhập mô tả hình ảnh ở đây


1

Swift (Sân chơi), 599 Byte

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))

Tôi quyết định thử, vì việc vẽ trong Swift khá đơn giản và nó thường không được chơi như thế này. Đã kết thúc việc mất các byte quý giá với văn bản ... Chết tiệt bạn NSDescriptiveVariableNames!

Đây là cách nó trông trong sân chơi:

Kết quả

Tôi nghĩ rằng tôi có thể chơi nó nhiều hơn bằng cách đặt biệt danh những thứ như CGRectMake, nhóm các đối tượng trong một chức năng, v.v.


Bạn không thể xóa các số 0 đứng đầu khỏi số float, như 0.384 đến .384? hoặc không nhanh chóng không hỗ trợ đó?
sagiksp

1

PHP, 145 byte, không cạnh tranh

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]),["####","    "]);

Tôi nên sử dụng không trống và màu sắc thay vào đó, nhưng tôi đã quá mệt mỏi.
Đoán rằng sẽ thêm 10 byte hoặc hơn để đếm, có thể nhiều hơn.


2
Tại sao nó không cạnh tranh?
Kodos Johnson

@KodosJohnson Nó không có màu. Và OP đã nói "các ký tự không phải khoảng trắng"
Titus

1

VBA Excel, 178 byte

VBE ẩn danh Chức năng cửa sổ tức thời không có đầu vào và đầu ra PCG Favicon (chính xác như trong lời nhắc ở trên) cho phạm vi

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 byte

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("");}}

Hãy thử trực tuyến!

Sử dụng mã thoát ANSI để in 128 không gian màu ngang và 64 dọc.

ANG PCG (Ảnh đã thay đổi kích thước.)


0

C ++ với SFML , 607 byte

#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();}}

Mã gọi hàm:

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

Yêu cầu:

  • Bạn cần phải có một tệp ttf hợp lệ được gọi a.ttftrong thư mục hiện tại nơi tệp thực thi đang chạy, để nó có thể tải các phông chữ để hiển thị văn bản

  • Bạn cần phải có các tệp SFML tương ứng trong thư mục hiện tại nơi tệp thực thi đang chạy

Kết quả :

Biểu tượng PPGC với C ++ và SFML

Giải thích:

#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

logo pcg

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.