Guest User

Untitled

a guest
Nov 12th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. BufferedImage image1 = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
  2. BufferedImage image2 = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
  3.  
  4. for (int i = 0; i < 100; i++) {
  5. for (int j = 0; j < 100; j++) {
  6.  
  7. int gray = (i + j) + (( i + j) << 8) + ((i + j) << 16);
  8. image1.setRGB(i, j, gray);
  9. int bw = 0;
  10. if (Math.random() * 256 < (i+j)) bw = 0xFFFFFF;
  11. image2.setRGB(i, j, bw);
  12. }
  13. }
  14.  
  15. JFrame window1 = new JFrame();
  16. boolean flip = false;
  17. BufferedImage image;
  18. while (true) {
  19. if (flip) image = image1;
  20. else image = image2;
  21. window1.getContentPane().removeAll();
  22. window1.setTitle("pic");
  23. JLabel label = new JLabel(new ImageIcon(image));
  24. window1.add(label);
  25. window1.setBounds(100, 100, 100, 200);
  26. window1.setVisible(true);
  27. Thread.sleep(500);
  28. flip = !flip;
  29. }
  30.  
  31. int main()
  32. {
  33. const int S = 300; // Размер поля
  34. const int R = 256; // Диапазон яркостей
  35.  
  36. for (int y = 0; y < S; ++y)
  37. {
  38. int error = 0;
  39.  
  40. for (int x = 0; x < S; ++x)
  41. {
  42. int ideal_c = (x + y) * (R - 1) / (2 * (S - 1));
  43. int corrected_c = ideal_c + error;
  44.  
  45. int actual_c = corrected_c < R / 2 ? 0 : R - 1;
  46. error = corrected_c - actual_c;
  47.  
  48. // Исходное поле: нарисовать точку (x, y) с яркостью `ideal_c`
  49. // Дизеринг: нарисовать точку (x, y) с яркостью `actual_c`
  50. }
  51. }
  52. }
Add Comment
Please, Sign In to add comment