比较 Java 中的图像大小(以 KB 为单位)
Compare Image Size in KB in Java
我正在使用 api,它给出了图像的大小,例如 200KB(也可以是 MB)。现在我需要对特定尺寸以下的图像执行一些操作。我想要实现的是这样的:
String imgSize = img.getSize();
if(imgSize < 250KB) {
// Do Something
}
我不能在这里使用关系运算符。实现这一目标的最佳方法是什么?
检查:
imgSize.endsWith("KB");
用正则表达式提取数字并相应地相乘。
判断imgSize
是KB还是MB。如果以 MB 为单位,请将其转换为 KB 并使用它。
String imgSize = "";
int imgSizeKB = 0;
switch (imgSize.toUpperCase()) {
case "KB":
imgSizeKB = (Integer.parseInt(imgSize.split("KB")[0]));
break;
case "MB":
imgSizeKB = (Integer.parseInt(imgSize.split("MB")[0]) * 1024);
break;
}
if(imgSizeKB < 250){
// Do Something
}
现在您可以使用 if
语句,因为 imgSizeKB
是一个 int
。
除了前面的回答,你还可以做这样的事情。将大小转换为以字节为单位的大小,然后使用 Integer.parseInt(String s)
获取可以检查的 int
值。
String bytes = size.replace("KB", "000").replace("MB", "000000");
if (Integer.parseInt(bytes) <= 250000) {
//Do something.
}
如果您要处理小数,这可以工作。
Map<String, Integer> conversions = new HashMap<String, Integer>();
conversions.put("KB", 1000);
conversions.put("MB", 1000000);
//Get numbers from String.
double doubleSize = Double.parseDouble(size.replaceAll("[A-Z]+$", ""));
//Get units from String.
String units = size.replaceAll("[0-9.]", "");
double bytes = doubleSize * conversions.get(units);
if (bytes <= 250000) {
//Do something.
}
我正在使用 api,它给出了图像的大小,例如 200KB(也可以是 MB)。现在我需要对特定尺寸以下的图像执行一些操作。我想要实现的是这样的:
String imgSize = img.getSize();
if(imgSize < 250KB) {
// Do Something
}
我不能在这里使用关系运算符。实现这一目标的最佳方法是什么?
检查:
imgSize.endsWith("KB");
用正则表达式提取数字并相应地相乘。
判断imgSize
是KB还是MB。如果以 MB 为单位,请将其转换为 KB 并使用它。
String imgSize = "";
int imgSizeKB = 0;
switch (imgSize.toUpperCase()) {
case "KB":
imgSizeKB = (Integer.parseInt(imgSize.split("KB")[0]));
break;
case "MB":
imgSizeKB = (Integer.parseInt(imgSize.split("MB")[0]) * 1024);
break;
}
if(imgSizeKB < 250){
// Do Something
}
现在您可以使用 if
语句,因为 imgSizeKB
是一个 int
。
除了前面的回答,你还可以做这样的事情。将大小转换为以字节为单位的大小,然后使用 Integer.parseInt(String s)
获取可以检查的 int
值。
String bytes = size.replace("KB", "000").replace("MB", "000000");
if (Integer.parseInt(bytes) <= 250000) {
//Do something.
}
如果您要处理小数,这可以工作。
Map<String, Integer> conversions = new HashMap<String, Integer>();
conversions.put("KB", 1000);
conversions.put("MB", 1000000);
//Get numbers from String.
double doubleSize = Double.parseDouble(size.replaceAll("[A-Z]+$", ""));
//Get units from String.
String units = size.replaceAll("[0-9.]", "");
double bytes = doubleSize * conversions.get(units);
if (bytes <= 250000) {
//Do something.
}