Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. Rozjaśnianie obrazu:
  2.  
  3. Bitmap ^bmp;//, ^bmp2;
  4. bmp = gcnew Bitmap("D:\pic.bmp", true);
  5. //bmp2 = gcnew Bitmap(200, 100); // Najpierw podajemy szerokość, a potem wysokość.
  6. int wys, szer, a, k = 0, l = 0;
  7. cin >> k;
  8. k = k < 50 ? 50 : k;
  9. k = k > 100 ? 100 : k;
  10. wys = bmp->Height;
  11. szer = bmp->Width;
  12. Color Px;
  13. int R, G, B;
  14. for (int kz = 0; kz < wys; kz++) {
  15. for (int kx = 0; kx < szer; kx++) {
  16. Px= bmp->GetPixel(kx, kz); // Tutaj najpierw podajemy współrzędną po szerokości (kolumnę), potem po wysokości (wiersz).
  17. // z to zawsze numer wiersza, x to zawsze numer kolumny.
  18. R = (Px.R > 255 - k) ? 255 : Px.R + k;
  19. G = (Px.G > 255 - k) ? 255 : Px.G + k;
  20. B = (Px.B > 255 - k) ? 255 : Px.B + k;
  21. Px=Color::FromArgb(R, G, B);
  22. bmp->SetPixel(kx, kz, Px);
  23. }
  24. }
  25. cout << "wys = " << wys << " szer = " << szer << endl;
  26. bmp->Save("D:\pic2.png");
  27. system("PAUSE");
  28. return 0;
  29.  
  30.  
  31. Obracanie obrazu:
  32.  
  33. Bitmap ^bmp, ^bmp2;
  34. bmp = gcnew Bitmap("D:\pic.bmp", true);
  35. int wys, szer;
  36. wys = bmp->Height;
  37. szer = bmp->Width;
  38. Color Px;
  39. bmp2 = gcnew Bitmap(szer, wys);
  40. double kat, ss, cc, w2, s2;
  41. cout << "Podaj kat.\n";
  42. cin >> kat;
  43. kat *= 3.141592 / 180;
  44. cc = cos(kat);
  45. ss = sin(kat);
  46.  
  47. w2 = (double)wys / 2.0;
  48. s2 = (double)szer / 2.0;
  49.  
  50. int kx, kz, nx, nz;
  51. for(kz = 0; kz < wys; kz++){
  52. for(kx = 0; kx < szer; kx++){
  53. Px = Color::FromArgb(255, 255, 255);
  54. bmp2->SetPixel(kx, kz, Px);
  55. }
  56. }
  57. for(kz = 0; kz < wys; kz++){
  58. for(kx = 0; kx < szer; kx++){
  59. nx = (int)(s2 + (kx - s2) * cc - (kz - w2) * ss);
  60. nz = (int)(w2 + (kx - s2) * ss - (kz - w2) * cc);
  61. if(( nx >= 0) && (nx < szer) && (nz >= 0) && (nz < wys))
  62. bmp2->SetPixel(nx, nz, bmp->GetPixel(kx, kz));
  63. }
  64. }
  65. bmp2->Save("D:\picchanged.png");
  66. system("PAUSE");
  67. return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement