2 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

View File

@@ -57,7 +57,7 @@ class Main
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 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++)
{
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
@@ -99,12 +114,13 @@ class Main
// Read the PNG file
BufferedImage image = processImage(imageName);
String[] pixelArray = prepareArray(image, xOffset, yOffset);
ArrayList<String> fullArray = prepareArray(image, xOffset, yOffset);
ArrayList<Worker> workerList = new ArrayList<>();
for(int i = 0; i < threadCount; i++)
{
workerList.add(new Worker(HOSTNAME, PORT, pixelArray));
String[] threadArray = prepareThreadArray(fullArray, i, threadCount);
workerList.add(new Worker(HOSTNAME, PORT, threadArray));
}
for(int i = 0; i < threadCount; i++)