// // main.cpp // ImageStreams // // Created by Joshua Moerman on 9/7/12. // Copyright (c) 2012 Vadovas. All rights reserved. // #include #include "png.hpp" #include "bmp.hpp" #include "basics.hpp" #include #include #include template void test(std::string filename){ size_t size = 512; ImageType image(size, size, filename); for(int y = 0; y < size; ++y){ for(int x = 0; x < size; ++x){ image << typename ImageType::pixel(x ^ y, (2 * x) ^ y, x ^ (2 * y)); } } } template void test2(std::string filename){ size_t size = 256; ImageType image(size, size, filename); for(int y = 0; y < size; ++y){ for(int x = 0; x < size; ++x){ if(x < size/2) image << typename ImageType::pixel(x ^ y); else image << typename ImageType::pixel(y); } } } // because lambdas dont work yet... inline double nice_rand(){ return rand() / double(RAND_MAX); } template void test3(std::string filename){ size_t size = 256; std::vector arr(size*size); std::generate_n(arr.begin(), size*size, &nice_rand); std::vector arr2(size*size, 0); for(int i = 0; i < size*size; ++i){ for (int j = i - 5; j <= i + 5; ++j) { if(j < 0 || j >= size*size) continue; arr2[i] += arr[j] * 0.1; } } ImageType image(size, size, filename); for(auto x : arr2) image << typename ImageType::pixel(x); } int main(int argc, const char * argv[]){ test>("test.png"); test>("test.bmp"); test2>("test_gray.png"); test2>("test_gray.bmp"); test3>("test_3.png"); test3>("test_3.bmp"); }