#include #include #include #include #include #include #include using namespace cv; using nlohmann::json; using std::string; #define H 800 #define W 300 #define M 30 #define R 60 Mat source_image = Mat::zeros(Size(H,W),CV_8UC1); void render(int i, int j, int y_s, int x_s, Mat *img) { if(i >= y_s && i <= y_s+R-1 && j >= x_s && j <= x_s+R-1) { source_image.at(i,j)=img->at(i-y_s,j-x_s); } } int main(int argc, char** argv) { // FACTION int fac; if(argc <= 1) { std::cout << "0:U,1:SK,2:M,3:N,4:S"; std::cin >> fac; } else fac = std::atoi(argv[1]); std::ifstream ff("cards/factions.json"); json factions = json::parse(ff); string faction = factions[fac]; // NAME string name; if(argc <= 2) std::cin >> name; else name = argv[2]; std::ifstream f("cards/"+faction+"/"+name+".json"); json data = json::parse(f); // LOAD IMAGES Mat i_look = imread("cards/"+faction+"/images/"+name+".png",IMREAD_GRAYSCALE); Mat i_faction = imread("cards/images/factions/"+faction+".png",IMREAD_GRAYSCALE); Mat i_line = imread("cards/images/lines/"+string(data["line"])+".png",IMREAD_GRAYSCALE); // RENDER IMAGES std::vector i_traits; for(auto trait : data["traits"]) { i_traits.push_back(imread("cards/images/traits/"+string(trait)+".png",IMREAD_GRAYSCALE)); } for(int i=0;i(i,j)=i_look.at(i,j); // RENDER POWER AND TRAITS string bruh = std::to_string((int)data["power"]); for(int i=0;i