QImage YoonEncryptor::encrypt(const QImage &src) { auto result = src; if(result.height() > result.width()) result = result.transformed(QTransform().rotate(90)); QVector<int> seed = dividers(result.height()); int **lookUpTable = createLUT(seed); QImage tempImage; int red,green,blue; QColor oldColor; for(int r = 0; r < K; r++){ tempImage = result; int **mask = createMask(result.height()); for(int i = 0; i < result.height(); i++){ for(int j = 0; j < result.width(); j++){ oldColor = tempImage.pixelColor(j, i); red = oldColor.red()^mask[lookUpTable[i][j]][j]; green = oldColor.green()^mask[lookUpTable[i][j]][j]; blue = oldColor.blue()^mask[lookUpTable[i][j]][j]; result.setPixelColor(j, lookUpTable[i][j], QColor(red, green, blue)); } } freeMemory(mask, result.height()); } freeMemory(lookUpTable, result.height()); if(result.height() > result.width()) result = result.transformed(QTransform().rotate(-90)); return result; }
int main() { unsigned int n,i,s,z; scanf("%u", &n); st b; b.s=0; b.s1=0; printf("graph {\n"); if(n!=1) dividers(&b, n); else printf(" %u\n",1); printf("}\n"); return 0; }