Verilen görüntünün boş olup olmadığını veya aynı piksel değerlerine sahip olduğunu saptamam gerekiyor. Lütfen aşağıdaki kodu bulun. . burada bir hoşgörü kurmak istiyorum. Bu mantığa üst, alt, sol ve sağ 20 piksel geçmek istemiyorum. lütfen yardım et!Bir görüntünün üst, alt, sağ ve solundaki 20 pikseli aydınlatmalı ve ardından piksel değerlerini karşılaştırmam gerekiyor
for (String pic : Finallist) {
BufferedImage image = ImageIO.read(new File(pic));
final byte[] pixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
final int width = image.getWidth();
final int height = image.getHeight();
final boolean hasAlphaChannel = image.getAlphaRaster() != null;
boolean blankImage=true;
int[][] result = new int[height][width];
if (hasAlphaChannel) {
final int pixelLength = 4;
for (int pixel = 0, row = 0, col = 0; pixel < pixels.length; pixel += pixelLength) {
int argb = 0;
argb += (((int) pixels[pixel] & 0xff) << 24); // alpha
argb += ((int) pixels[pixel + 1] & 0xff); // blue
argb += (((int) pixels[pixel + 2] & 0xff) << 8); // green
argb += (((int) pixels[pixel + 3] & 0xff) << 16); // red
result[row][col] = argb;
if(result[row][col]!=result[0][0]) {
blankImage=false;
}
col++;
if (col == width) {
col = 0;
row++;
}
}
} else {
final int pixelLength = 3;
for (int pixel = 0, row = 0, col = 0; pixel < pixels.length; pixel += pixelLength) {
int argb = 0;
argb += -16777216; // 255 alpha
argb += ((int) pixels[pixel] & 0xff); // blue
argb += (((int) pixels[pixel + 1] & 0xff) << 8); // green
argb += (((int) pixels[pixel + 2] & 0xff) << 16); // red
result[row][col] = argb;
if(result[row][col]!=result[0][0]) {
blankImage=false;
}
col++;
if (col == width) {
col = 0;
row++;
}
}
}
if(blankImage==true) {
try {
System.out.println("Blank image found and its deleted");
File f = new File(pic);
f.delete();
} catch(Exception e) {
System.out.println("Exception"+e);
}
}else {
FinalListWithOutBlank.add(pic);
}
}
Havadaki her şeyi istiyorum! Benim kod performans ağrı olmayacak şekilde .. Ben sadece .. bu mantıkla içine uzanmak için bu pikseli atlamak isteyen
Performans açısından çok acı çekeceğini düşünüyorum. Bu piksellerin havaya yayılmasının başka bir yolu var mı? –
Denedin mi? – Brain