C + stb_image + stb_image_write 175 162 ไบต์ (หรือ +72 =247 234)
การส่งครั้งแรกของฉันในเว็บไซต์นี้เคย
#include"stb_image.h"
#include"stb_image_write.h"
x,y,c,i;f(char*d){d=stbi_load(d,&x,&y,&c,i=0);for(;i<x*y*c;i++)d[i]=255-d[i];stbi_write_png("a.png",x,y,c,d,0);}
อาจโกนหนวดออกไปสองสามไบต์ จำเป็นต้องมีstb_*
การติดตั้งเพื่อใช้งานในห้องสมุดแยกต่างหากหรือเมื่อเริ่มต้นไฟล์นี้ด้วย:
#define STB_IMAGE_IMPLEMENTATION
#define STB_IMAGE_WRITE_IMPLEMENTATION
ฉันไม่ได้รวมไว้ในการนับเพราะมันเป็นส่วนหนึ่งของห้องสมุด (โดยเฉพาะถ้ามันรวบรวมแยกต่างหาก) +72 ไบต์เพื่อเพิ่มว่าถ้าจำเป็นอย่างไรก็ตาม
อัปเดต 1:
รับฟังก์ชั่นเท่านั้น (ซึ่งตรงข้ามกับโปรแกรมทั้งหมด) นั้นสามารถตัดได้ 15 ไบต์ การใช้งานเก่า (ซึ่งเป็นโปรแกรมทั้งหมด) สำหรับการอ้างอิง:
x,y,i;main(int c,char**d){*d=stbi_load(d[1],&x,&y,&c,0);for(;i<x*y*c;i++)i[*d]=255-i[*d];stbi_write_png("a.png",x,y,c,*d,0);}