提交 de6ae505 编写于 作者: C cmj

see 09/08 log

上级 dd65d407
......@@ -28,14 +28,15 @@ import android.renderscript.Element;
import android.renderscript.RenderScript;
import android.renderscript.ScriptIntrinsicBlur;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* <pre>
......@@ -121,32 +122,25 @@ public class ImageUtils {
/**
* 根据文件路径获取bitmap
*
* @param filePath 文件路径
* @param file 文件路径
* @return bitmap
*/
public static Bitmap getBitmapByFile(String filePath) {
return getBitmapByFile(FileUtils.getFileByPath(filePath));
public static Bitmap getBitmapByFile(File file) {
if (file == null) return null;
return getBitmapByFile(file.getPath());
}
/**
* 根据文件路径获取bitmap
*
* @param file 文件路径
* @param filePath 文件路径
* @return bitmap
*/
public static Bitmap getBitmapByFile(File file) {
if (file == null) return null;
try {
return BitmapFactory.decodeStream(new FileInputStream(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
}
public static Bitmap getBitmapByFile(String filePath) {
return BitmapFactory.decodeFile(filePath);
}
/**
* 根据文件路径获取bitmap
*
* @param filePath 文件路径
* @return bitmap
*/
......@@ -166,24 +160,19 @@ public class ImageUtils {
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;
if (height > reqHeight || width > reqWidth) {
final int halfHeight = height / 2;
final int halfWidth = width / 2;
// Calculate the largest inSampleSize value that is a power of 2 and keeps both
// height and width larger than the requested height and width.
while ((halfHeight / inSampleSize) > reqHeight
&& (halfWidth / inSampleSize) > reqWidth) {
inSampleSize *= 2;
inSampleSize <<= 1;
}
}
return inSampleSize;
}
/**
* 缩放图片
*
......@@ -735,17 +724,17 @@ public class ImageUtils {
* @return {@code true}: 成功<br>{@code false}: 失败
*/
public static boolean save(Bitmap src, File file, CompressFormat format) {
if (isEmptyBitmap(src) || file == null) return false;
System.out.println(src.getWidth() + "," + src.getHeight());
FileOutputStream fos = null;
if (isEmptyBitmap(src) || !FileUtils.createOrExistsFile(file)) return false;
System.out.println(src.getWidth() + ", " + src.getHeight());
OutputStream os = null;
try {
fos = new FileOutputStream(file);
return src.compress(format, 100, fos);
os = new BufferedOutputStream(new FileOutputStream(file));
return src.compress(format, 100, os);
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
FileUtils.closeIO(fos);
FileUtils.closeIO(os);
}
}
......
......@@ -26,9 +26,8 @@ public class ImageUtilsTest {
@Test
public void testBitmap2Bytes() throws Exception {
FileUtils.createOrExistsFile(path + "new1.png");
Bitmap bitmap = ImageUtils.getBitmapByFile(path + "lena.png");
System.out.println(ImageUtils.save(bitmap, path + "new1.png", Bitmap.CompressFormat.PNG));
System.out.println(ImageUtils.save(bitmap, path + "new.png", Bitmap.CompressFormat.PNG));
}
@Test
......
utilcode/src/test/res/image/lena.png

316.3 KB | W: | H:

utilcode/src/test/res/image/lena.png

107.4 KB | W: | H:

utilcode/src/test/res/image/lena.png
utilcode/src/test/res/image/lena.png
utilcode/src/test/res/image/lena.png
utilcode/src/test/res/image/lena.png
  • 2-up
  • Swipe
  • Onion skin
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册