4 Commits

Author SHA1 Message Date
darkress
3d5749ca71 fixed slicing for images with the condition totalPixels/threadCount != Integer 2023-06-11 03:55:27 +02:00
darkress
78d67a32eb Working slicing (#2)
Co-authored-by: darkress <30271678+DarkressX@users.noreply.github.com>
Reviewed-on: darkress/PixelFloodClient#2
2023-06-11 03:44:34 +02:00
darkress
bf52cfa229 Variable threadcount 2023-06-10 17:15:26 +02:00
darkress
41242bf3ed some try catching (#1)
Co-authored-by: Darkress <30271678+DarkressX@users.noreply.github.com>
Reviewed-on: darkress/PixelFloodClient#1
2023-06-10 16:44:43 +02:00

View File

@@ -57,7 +57,7 @@ class Main
return null; return null;
} }
private static String[] prepareArray(BufferedImage image, int xOffset, int yOffset) { private static ArrayList<String> prepareArray(BufferedImage image, int xOffset, int yOffset) {
int width = image.getWidth(); int width = image.getWidth();
int height = image.getHeight(); int height = image.getHeight();
@@ -79,13 +79,28 @@ class Main
} }
} }
} }
String[] payloadArray = new String[pixelArray.size()]; /*String[] payloadArray = new String[pixelArray.size()];
for(int i = 0; i < payloadArray.length; i++) for(int i = 0; i < payloadArray.length; i++)
{ {
payloadArray[i] = pixelArray.get(i); payloadArray[i] = pixelArray.get(i);
} }
return payloadArray; return payloadArray;*/
return pixelArray;
}
public static String[] prepareThreadArray(ArrayList<String> fullArray, int threadNumber, int threadCount)
{
int count = 0;
int arrayStart = (threadNumber*fullArray.size())/threadCount;
int arrayEnd = ((threadNumber+1)*fullArray.size())/threadCount;
String[] threadArray = new String[arrayEnd-arrayStart];
for(int i = arrayStart; i < arrayEnd; i++)
{
threadArray[count] = fullArray.get(i);
count++;
}
return threadArray;
} }
//Syntax blabla.jar x y Hostname Port Image.png //Syntax blabla.jar x y Hostname Port Image.png
@@ -94,41 +109,23 @@ class Main
final String HOSTNAME = args[2]; final String HOSTNAME = args[2];
final int xOffset = Integer.parseInt(args[0]); final int xOffset = Integer.parseInt(args[0]);
final int yOffset = Integer.parseInt(args[1]); final int yOffset = Integer.parseInt(args[1]);
final String imageName = args[4]; int threadCount = Integer.parseInt(args[4]);
final String imageName = args[5];
// Read the PNG file // Read the PNG file
BufferedImage image = processImage(imageName); BufferedImage image = processImage(imageName);
String[] pixelArray = prepareArray(image, xOffset, yOffset); ArrayList<String> fullArray = prepareArray(image, xOffset, yOffset);
ArrayList<Worker> workerList = new ArrayList<>();
Worker worker0 = new Worker(HOSTNAME, PORT, pixelArray); for(int i = 0; i < threadCount; i++)
Worker worker1 = new Worker(HOSTNAME, PORT, pixelArray); {
Worker worker2 = new Worker(HOSTNAME, PORT, pixelArray); String[] threadArray = prepareThreadArray(fullArray, i, threadCount);
Worker worker3 = new Worker(HOSTNAME, PORT, pixelArray); workerList.add(new Worker(HOSTNAME, PORT, threadArray));
Worker worker4 = new Worker(HOSTNAME, PORT, pixelArray); }
Worker worker5 = new Worker(HOSTNAME, PORT, pixelArray);
Worker worker6 = new Worker(HOSTNAME, PORT, pixelArray);
Worker worker7 = new Worker(HOSTNAME, PORT, pixelArray);
for(int i = 0; i < threadCount; i++)
worker0.start(); {
worker1.start(); workerList.get(i).start();
worker2.start();
worker3.start();
worker4.start();
worker5.start();
worker6.start();
worker7.start();
/*try {
Socket socket = new Socket(HOSTNAME, PORT);
while(true) {
for(int i = 0; i < pixelArray.length; i++) {
byte[] payload = pixelArray[i].getBytes();
socket.getOutputStream().write(payload);
} }
} }
} catch (IOException e) {
e.printStackTrace();
}*/
}
} }