Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Rozjaśnianie obrazu:
- Bitmap ^bmp;//, ^bmp2;
- bmp = gcnew Bitmap("D:\pic.bmp", true);
- //bmp2 = gcnew Bitmap(200, 100); // Najpierw podajemy szerokość, a potem wysokość.
- int wys, szer, a, k = 0, l = 0;
- cin >> k;
- k = k < 50 ? 50 : k;
- k = k > 100 ? 100 : k;
- wys = bmp->Height;
- szer = bmp->Width;
- Color Px;
- int R, G, B;
- for (int kz = 0; kz < wys; kz++) {
- for (int kx = 0; kx < szer; kx++) {
- Px= bmp->GetPixel(kx, kz); // Tutaj najpierw podajemy współrzędną po szerokości (kolumnę), potem po wysokości (wiersz).
- // z to zawsze numer wiersza, x to zawsze numer kolumny.
- R = (Px.R > 255 - k) ? 255 : Px.R + k;
- G = (Px.G > 255 - k) ? 255 : Px.G + k;
- B = (Px.B > 255 - k) ? 255 : Px.B + k;
- Px=Color::FromArgb(R, G, B);
- bmp->SetPixel(kx, kz, Px);
- }
- }
- cout << "wys = " << wys << " szer = " << szer << endl;
- bmp->Save("D:\pic2.png");
- system("PAUSE");
- return 0;
- Obracanie obrazu:
- Bitmap ^bmp, ^bmp2;
- bmp = gcnew Bitmap("D:\pic.bmp", true);
- int wys, szer;
- wys = bmp->Height;
- szer = bmp->Width;
- Color Px;
- bmp2 = gcnew Bitmap(szer, wys);
- double kat, ss, cc, w2, s2;
- cout << "Podaj kat.\n";
- cin >> kat;
- kat *= 3.141592 / 180;
- cc = cos(kat);
- ss = sin(kat);
- w2 = (double)wys / 2.0;
- s2 = (double)szer / 2.0;
- int kx, kz, nx, nz;
- for(kz = 0; kz < wys; kz++){
- for(kx = 0; kx < szer; kx++){
- Px = Color::FromArgb(255, 255, 255);
- bmp2->SetPixel(kx, kz, Px);
- }
- }
- for(kz = 0; kz < wys; kz++){
- for(kx = 0; kx < szer; kx++){
- nx = (int)(s2 + (kx - s2) * cc - (kz - w2) * ss);
- nz = (int)(w2 + (kx - s2) * ss - (kz - w2) * cc);
- if(( nx >= 0) && (nx < szer) && (nz >= 0) && (nz < wys))
- bmp2->SetPixel(nx, nz, bmp->GetPixel(kx, kz));
- }
- }
- bmp2->Save("D:\picchanged.png");
- system("PAUSE");
- return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement