Guest User

Untitled

a guest
Nov 12th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 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 = (x + y) * (R - 1) / (2 * (S - 1));
  43. int corrected = ideal + error;
  44. int bw = corrected < R / 2 ? 0 : R - 1;
  45. error = corrected - bw;
  46.  
  47. // Исходное поле: нарисовать точку (x, y) с яркостью `ideal`
  48. // Дизеринг: нарисовать точку (x, y) с яркостью `bw`
  49. }
  50. }
  51. }
Add Comment
Please, Sign In to add comment