Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.06 KB | None | 0 0
  1. SDL_Color paleta[256];
  2. int ileKolorow = 0;
  3.  
  4. bool porownajKolory(SDL_Color colorA, SDL_Color colorB) {
  5.     bool wynik = true;
  6.     if(colorA.r != colorB.r) wynik = false;
  7.     if(colorA.g != colorB.g) wynik = false;
  8.     if(colorA.b != colorB.b) wynik = false;
  9.  
  10.     return wynik;
  11. }
  12.  
  13. int dodajKolor(SDL_Color color) {
  14.     paleta[ileKolorow] = color;
  15.     cout << ileKolorow << ": (" << (int)color.r << ", " << (int)color.g << ", " << (int)color.b << ")" << endl;
  16.     ileKolorow++;
  17.  
  18.     return (ileKolorow - 1);
  19. }
  20.  
  21. int sprawdzKolor(SDL_Color color) {
  22.     int wynik = -1;
  23.  
  24.     if(ileKolorow > 0) {
  25.         for(int i = 0; i < ileKolorow; i++) {
  26.             if(porownajKolory(color, paleta[i])) {
  27.                 wynik = i;
  28.             }
  29.         }
  30.     }
  31.  
  32.     if(wynik < 0) {
  33.         wynik = dodajKolor(color);
  34.     }
  35.  
  36.     return wynik;
  37. }
  38.  
  39. void Funkcja1() {
  40.  
  41.     SDL_Color color;
  42.     ileKolorow = 0;
  43.  
  44.     for(int y = 0; y < height / 2; y++) {
  45.         for(int x = 0; x < width / 2; x++) {
  46.             color = getPixel(x, y);
  47.             sprawdzKolor(color);
  48.  
  49.         //cout << x << ": (" << (int)color.r << ", " << (int)color.g << ", " << (int)color.b << ")" << endl;
  50.         }
  51.     }
  52.  
  53.     SDL_Flip(screen);
  54. }
  55.  
  56.  
  57. void Funkcja2() {
  58.  
  59.     SDL_Color color;
  60.     Uint16 szerokosc = width / 2;
  61.     Uint16 wysokosc = height / 2;
  62.     Uint8 wartosc = 0;
  63.  
  64.     cout << "Zapisujemy za pomoca cout plik obrazek.bin" << endl;
  65.  
  66.     ofstream wyjscie("obrazek.bin");
  67.     wyjscie << "PIZZA" << szerokosc << wysokosc;
  68.  
  69.     for(int y = 0; y < wysokosc; y++) {
  70.         for(int x = 0; x < szerokosc; x++) {
  71.             color = getPixel(x, y);
  72.             wartosc = sprawdzKolor(color);
  73.             wyjscie << wartosc;
  74.         }
  75.     }
  76.  
  77.     wyjscie.close();
  78.  
  79.     SDL_Flip(screen);
  80. }
  81.  
  82. void Funkcja3() {
  83.  
  84.     SDL_Color color;
  85.     Uint16 szerokosc = width / 2;
  86.     Uint16 wysokosc = height / 2;
  87.     Uint8 wartosc = 0;
  88.     Uint8 kolory = ileKolorow;
  89.     char identyfikator[] = "PIZZA";
  90.  
  91.     cout << "Zapisujemy za pomoca write plik obrazek2.bin" << endl;
  92.  
  93.     ofstream wyjscie("obrazek2.bin", ios::binary);
  94.     wyjscie.write((char*)&identyfikator, sizeof(char) * 5);
  95.     wyjscie.write((char*)&szerokosc, sizeof(Uint16));
  96.     wyjscie.write((char*)&wysokosc, sizeof(Uint16));
  97.     wyjscie.write((char*)&kolory, sizeof(Uint8));
  98.  
  99.     for(int y = 0; y < wysokosc; y++) {
  100.         for(int x = 0; x < szerokosc; x++) {
  101.             color = getPixel(x, y);
  102.             wartosc = sprawdzKolor(color);
  103.             wyjscie.write((char*)&wartosc, sizeof(Uint8));
  104.         }
  105.     }
  106.  
  107.     wyjscie.close();
  108.  
  109.     SDL_Flip(screen);
  110. }
  111.  
  112. void Funkcja4() {
  113.  
  114.     SDL_Color color;
  115.     Uint8 wartosc;
  116.     Uint16 szerokosc;
  117.     Uint16 wysokosc;
  118.     Uint8 kolory;
  119.     char identyfikator[] = "     ";
  120.  
  121.     cout << "Odczytujemy za pomoca read plik obrazek2.bin" << endl;
  122.  
  123.     ifstream wejscie("obrazek2.bin", ios::binary);
  124.     wejscie.read((char*)&identyfikator, sizeof(char) * 5);
  125.     wejscie.read((char*)&szerokosc, sizeof(Uint16));
  126.     wejscie.read((char*)&wysokosc, sizeof(Uint16));
  127.     wejscie.read((char*)&kolory, sizeof(Uint8));
  128.  
  129.     cout << " - [ Parametry ] - " << endl;
  130.     cout << "Identyfikator: " << identyfikator << endl;
  131.     cout << "Szerokosc: " << szerokosc << endl;
  132.     cout << "Wysokosc: " << wysokosc << endl;
  133.     cout << "Kolory: " << (int)kolory << endl;
  134.  
  135.     for(int y = 0; y < wysokosc; y++) {
  136.         for(int x = 0; x < szerokosc; x++) {
  137.             wejscie.read((char*)&wartosc, sizeof(Uint8));
  138.             color = paleta[wartosc];
  139.             setPixel(x + (width / 2), y, color.r, color.g, color.b);
  140.         }
  141.     }
  142.  
  143.     wejscie.close();
  144.  
  145.     SDL_Flip(screen);
  146. }
  147.  
  148.  
  149. void Funkcja5() {
  150.  
  151.     SDL_Color color;
  152.     Uint16 szerokosc = width / 2;
  153.     Uint16 wysokosc = height / 2;
  154.     Uint8 wartosc = 0;
  155.     Uint8 kolory = ileKolorow;
  156.     char identyfikator[] = "PIZZA";
  157.  
  158.     cout << "Zapisujemy za pomoca write z paleta plik obrazek3.bin" << endl;
  159.  
  160.     ofstream wyjscie("obrazek3.bin", ios::binary);
  161.     wyjscie.write((char*)&identyfikator, sizeof(char) * 5);
  162.     wyjscie.write((char*)&szerokosc, sizeof(Uint16));
  163.     wyjscie.write((char*)&wysokosc, sizeof(Uint16));
  164.     wyjscie.write((char*)&kolory, sizeof(Uint8));
  165.  
  166.     for(int i = 0; i < kolory; i++) {
  167.         wyjscie.write((char*)&paleta[i].r, sizeof(Uint8));
  168.         wyjscie.write((char*)&paleta[i].g, sizeof(Uint8));
  169.         wyjscie.write((char*)&paleta[i].b, sizeof(Uint8));
  170.     }
  171.  
  172.     for(int y = 0; y < wysokosc; y++) {
  173.         for(int x = 0; x < szerokosc; x++) {
  174.             color = getPixel(x, y);
  175.             wartosc = sprawdzKolor(color);
  176.             wyjscie.write((char*)&wartosc, sizeof(Uint8));
  177.         }
  178.     }
  179.  
  180.     wyjscie.close();
  181.  
  182.     SDL_Flip(screen);
  183. }
  184.  
  185.  
  186. void Funkcja6() {
  187.  
  188.     SDL_Color color;
  189.     Uint8 wartosc;
  190.     Uint16 szerokosc;
  191.     Uint16 wysokosc;
  192.     Uint8 kolory;
  193.     char identyfikator[] = "     ";
  194.  
  195.     cout << "Odczytujemy za pomoca read z paleta plik obrazek3.bin" << endl;
  196.  
  197.     ifstream wejscie("obrazek3.bin", ios::binary);
  198.     wejscie.read((char*)&identyfikator, sizeof(char) * 5);
  199.     wejscie.read((char*)&szerokosc, sizeof(Uint16));
  200.     wejscie.read((char*)&wysokosc, sizeof(Uint16));
  201.     wejscie.read((char*)&kolory, sizeof(Uint8));
  202.  
  203.     cout << " - [ Parametry ] - " << endl;
  204.     cout << "Identyfikator: " << identyfikator << endl;
  205.     cout << "Szerokosc: " << szerokosc << endl;
  206.     cout << "Wysokosc: " << wysokosc << endl;
  207.     cout << "Kolory: " << (int)kolory << endl;
  208.  
  209.     Uint8 r,g,b;
  210.     for(int i = 0; i < (int)kolory; i++) {
  211.         wejscie.read((char*)&r, sizeof(Uint8));
  212.         wejscie.read((char*)&g, sizeof(Uint8));
  213.         wejscie.read((char*)&b, sizeof(Uint8));
  214.  
  215.         paleta[i] = (SDL_Color) {r, g, b};
  216.     }
  217.  
  218.     for(int y = 0; y < wysokosc; y++) {
  219.         for(int x = 0; x < szerokosc; x++) {
  220.             wejscie.read((char*)&wartosc, sizeof(Uint8));
  221.             color = paleta[wartosc];
  222.             setPixel(x + (width / 2), y, color.r, color.g, color.b);
  223.         }
  224.     }
  225.  
  226.     wejscie.close();
  227.  
  228.     SDL_Flip(screen);
  229. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement