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