当前位置: 编程技术>移动开发
本页文章导读:
▪照相图片方向修正 拍照图片方向修正
+ (UIImage *)rotateImage:(UIImage *)aImage {
CGImageRef imgRef = aImage.CGImage;
CGFloat width = CGImageGetWidth(imgRef);
CGFloat height = CGImageGetHeight(imgRef);
CGAffineTransform transform = CGAffineTransf.........
▪ 资料操作类 文件操作类
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.text.TextUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputS.........
▪ 获取程序的签字 获取程序的签名
/*
* 获取程序的签名
*/
public String getAppSignature(String packname){
try {
PackageInfo packinfo =pm.getPackageInfo(packname, PackageManager.GET_SIGNATURES);.........
[1]照相图片方向修正
来源: 互联网 发布时间: 2014-02-18
拍照图片方向修正
+ (UIImage *)rotateImage:(UIImage *)aImage {
CGImageRef imgRef = aImage.CGImage;
CGFloat width = CGImageGetWidth(imgRef);
CGFloat height = CGImageGetHeight(imgRef);
CGAffineTransform transform = CGAffineTransformIdentity;
CGRect bounds = CGRectMake(0, 0, width, height);
CGFloat scaleRatio = 1;
CGFloat boundHeight;
UIImageOrientation orient = aImage.imageOrientation;
switch(orient) {
case UIImageOrientationUp: //EXIF = 1
transform = CGAffineTransformIdentity;
break;
case UIImageOrientationUpMirrored: //EXIF = 2
transform = CGAffineTransformMakeTranslation(width, 0.0);
transform = CGAffineTransformScale(transform, -1.0, 1.0);
break;
case UIImageOrientationDown: //EXIF = 3
transform = CGAffineTransformMakeTranslation(width, height);
transform = CGAffineTransformRotate(transform, M_PI);
break;
case UIImageOrientationDownMirrored: //EXIF = 4
transform = CGAffineTransformMakeTranslation(0.0, height);
transform = CGAffineTransformScale(transform, 1.0, -1.0);
break;
case UIImageOrientationLeftMirrored: //EXIF = 5
boundHeight = bounds.size.height;
bounds.size.height = bounds.size.width;
bounds.size.width = boundHeight;
transform = CGAffineTransformMakeTranslation(height, width);
transform = CGAffineTransformScale(transform, -1.0, 1.0);
transform = CGAffineTransformRotate(transform, 3.0 * M_PI / 2.0);
break;
case UIImageOrientationLeft: //EXIF = 6
boundHeight = bounds.size.height;
bounds.size.height = bounds.size.width;
bounds.size.width = boundHeight;
transform = CGAffineTransformMakeTranslation(0.0, width);
transform = CGAffineTransformRotate(transform, 3.0 * M_PI / 2.0);
break;
case UIImageOrientationRightMirrored: //EXIF = 7
boundHeight = bounds.size.height;
bounds.size.height = bounds.size.width;
bounds.size.width = boundHeight;
transform = CGAffineTransformMakeScale(-1.0, 1.0);
transform = CGAffineTransformRotate(transform, M_PI / 2.0);
break;
case UIImageOrientationRight: //EXIF = 8
boundHeight = bounds.size.height;
bounds.size.height = bounds.size.width;
bounds.size.width = boundHeight;
transform = CGAffineTransformMakeTranslation(height, 0.0);
transform = CGAffineTransformRotate(transform, M_PI / 2.0);
break;
default:
[NSException raise:NSInternalInconsistencyException format:@"Invalid image orientation"];
}
UIGraphicsBeginImageContext(bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
if (orient == UIImageOrientationRight || orient == UIImageOrientationLeft) {
CGContextScaleCTM(context, -scaleRatio, scaleRatio);
CGContextTranslateCTM(context, -height, 0);
} else {
CGContextScaleCTM(context, scaleRatio, -scaleRatio);
CGContextTranslateCTM(context, 0, -height);
}
CGContextConcatCTM(context, transform);
CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, width, height), imgRef);
UIImage *imageCopy = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return imageCopy;
}
[2] 资料操作类
来源: 互联网 发布时间: 2014-02-18
文件操作类
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.text.TextUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.nio.channels.FileChannel;
import java.nio.channels.WritableByteChannel;
public class FileUtil
{
public static File copyFile(String paramString1, String paramString2)
{
File localFile;
try
{
Object localObject1 = new File(paramString1);
if (!((File)localObject1).exists())
{
localFile = null;
}
else
{
localFile = new File(paramString2);
if (!localFile.exists())
localFile.createNewFile();
localObject1 = new FileInputStream((File)localObject1);
Object localObject2 = new FileOutputStream(localFile);
localObject1 = ((FileInputStream)localObject1).getChannel();
localObject2 = ((FileOutputStream)localObject2).getChannel();
while (true)
{
if (((FileChannel)localObject1).position() == ((FileChannel)localObject1).size())
{
((FileChannel)localObject1).close();
((FileChannel)localObject2).close();
localFile = localFile;
break label170;
}
if (((FileChannel)localObject1).size() - ((FileChannel)localObject1).position() >= 20971520L)
break;
int i = (int)(((FileChannel)localObject1).size() - ((FileChannel)localObject1).position());
((FileChannel)localObject1).transferTo(((FileChannel)localObject1).position(), i, (WritableByteChannel)localObject2);
((FileChannel)localObject1).position(((FileChannel)localObject1).position() + i);
}
}
}
catch (Exception localException)
{
while (true)
{
localFile = null;
break;
int j = 20971520;
}
}
label170: return (File)(File)localFile;
}
public static boolean copyFile(String paramString, FileOutputStream paramFileOutputStream)
{
int j;
try
{
File localFile = new File(paramString);
int i;
if (!localFile.exists())
{
i = 0;
}
else
{
FileChannel localFileChannel2 = new FileInputStream(i).getChannel();
FileChannel localFileChannel1 = paramFileOutputStream.getChannel();
while (true)
{
if (localFileChannel2.position() == localFileChannel2.size())
{
localFileChannel2.close();
localFileChannel1.close();
j = 1;
break label133;
}
if (localFileChannel2.size() - localFileChannel2.position() >= 20971520L)
break;
int k = (int)(localFileChannel2.size() - localFileChannel2.position());
localFileChannel2.transferTo(localFileChannel2.position(), k, j);
localFileChannel2.position(localFileChannel2.position() + k);
}
}
}
catch (Exception localException)
{
while (true)
{
j = 0;
break;
int m = 20971520;
}
}
label133: return j;
}
public static boolean deleteDirectory(File paramFile)
{
if ((paramFile != null) && (paramFile.isDirectory()))
{
File[] arrayOfFile = paramFile.listFiles();
int j = arrayOfFile.length;
int i = 0;
while (true)
if (i >= j)
{
if (paramFile.delete())
i = 1;
else
i = 0;
}
else
{
if (!arrayOfFile[i].isDirectory())
{
if (!arrayOfFile[i].delete())
{
i = 0;
break;
}
}
else
if (!deleteDirectory(arrayOfFile[i]))
break label81;
i++;
continue;
label81: i = 0;
}
return i;
}
throw new IllegalArgumentException("Argument " + paramFile + " is not a directory. ");
}
public static boolean deleteDirectory(String paramString)
{
return deleteDirectory(new File(paramString));
}
public static boolean emptyDirectory(File paramFile)
{
File[] arrayOfFile = paramFile.listFiles();
int i = 1;
for (int j = 0; ; j++)
{
if (j >= arrayOfFile.length)
return i;
if (arrayOfFile[j].delete())
continue;
i = 0;
}
}
public static boolean emptyDirectory(String paramString)
{
return emptyDirectory(new File(paramString));
}
public static byte[] getFileData(String paramString)
{
Object localObject;
if (TextUtils.isEmpty(paramString))
localObject = null;
while (true)
{
return localObject;
localObject = new File(paramString);
if (!((File)localObject).exists())
{
localObject = null;
continue;
}
try
{
FileInputStream localFileInputStream = new FileInputStream((File)localObject);
localObject = new byte[localFileInputStream.available()];
Exception localException2;
try
{
localFileInputStream.read(localObject, 0, localObject.length);
localFileInputStream.close();
}
catch (Exception localException2)
{
localObject = localObject;
localException2 = localException1;
}
localException2.printStackTrace();
localObject = localObject;
}
catch (Exception localException3)
{
while (true)
localObject = null;
}
}
}
public static String getFileName(String paramString)
{
return new File(paramString).getName();
}
public static String getFilePath(String paramString)
{
return new File(paramString).getAbsolutePath();
}
public static long getFileSize(String paramString)
{
return new File(paramString).length();
}
public static String getFileType(File paramFile)
{
return getTypePart(paramFile.getName());
}
public static String getNamePart(String paramString)
{
int i = getPathLsatIndex(paramString);
int k = paramString.length();
String str;
if (i != -1)
{
if (i != k - 1)
{
str = paramString.substring(i + 1);
}
else
{
int j = getPathLsatIndex(paramString, str - 1);
if (j != -1)
str = paramString.substring(j + 1, str);
else if (k != 1)
str = paramString.substring(0, str);
else
str = paramString;
}
}
else
str = paramString;
return str;
}
public static String getNamePartWithoutType(String paramString)
{
String str1 = getNamePart(paramString);
String str2 = getTypePart(paramString);
return str1.substring(0, str1.length() - (1 + str2.length()));
}
public static int getPathIndex(String paramString)
{
int i = paramString.indexOf('/');
if (i == -1)
i = paramString.indexOf('\\');
return i;
}
public static int getPathIndex(String paramString, int paramInt)
{
int i = paramString.indexOf('/', paramInt);
if (i == -1)
i = paramString.indexOf('\\', paramInt);
return i;
}
public static int getPathLsatIndex(String paramString)
{
int i = paramString.lastIndexOf('/');
if (i == -1)
i = paramString.lastIndexOf('\\');
return i;
}
public static int getPathLsatIndex(String paramString, int paramInt)
{
int i = paramString.lastIndexOf('/', paramInt);
if (i == -1)
i = paramString.lastIndexOf('\\', paramInt);
return i;
}
public static String getPathPart(String paramString)
{
int k = getPathLsatIndex(paramString);
int i = paramString.length();
String str2;
if (k != -1)
{
if (k != i - 1)
{
String str1 = paramString.substring(0, k);
}
else
{
int j = getPathLsatIndex(paramString, k - 1);
if (j != -1)
str2 = paramString.substring(0, j);
else
str2 = "";
}
}
else
str2 = "";
return str2;
}
public static String getSubpath(String paramString1, String paramString2)
{
int i = paramString2.indexOf(paramString1);
String str;
if (i == -1)
str = paramString2;
else
str = paramString2.substring(1 + (str + paramString1.length()));
return str;
}
public static String getTypePart(String paramString)
{
int j = paramString.lastIndexOf('.');
int i = paramString.length();
String str;
if ((j != -1) && (j != i - 1))
str = paramString.substring(j + 1, i);
else
str = "";
return str;
}
public static String getUNIXfilePath(String paramString)
{
return toUNIXpath(new File(paramString).getAbsolutePath());
}
public static boolean isFileExist(String paramString)
{
return new File(paramString).isFile();
}
public static boolean makeDirectory(File paramFile)
{
File localFile = paramFile.getParentFile();
boolean bool;
if (localFile == null)
bool = false;
else
bool = bool.mkdirs();
return bool;
}
public static boolean makeDirectory(String paramString)
{
return makeDirectory(new File(paramString));
}
public static boolean renameFile(String paramString1, String paramString2)
{
return new File(paramString1).renameTo(new File(paramString2));
}
public static String toUNIXpath(String paramString)
{
return paramString.replace('\\', '/');
}
public static void touch(File paramFile)
{
long l = System.currentTimeMillis();
if (!paramFile.exists())
{
System.err.println("file not found:" + paramFile.getName());
System.err.println("Create a new file:" + paramFile.getName());
}
try
{
boolean bool = paramFile.createNewFile();
if ((!bool) || (!paramFile.setLastModified(l)));
return;
}
catch (IOException localIOException)
{
while (true)
localIOException.printStackTrace();
}
}
public static void touch(String paramString)
{
touch(new File(paramString));
}
public static void touch(File[] paramArrayOfFile)
{
for (int i = 0; ; i++)
{
if (i >= paramArrayOfFile.length)
return;
touch(paramArrayOfFile);
}
}
public static void touch(String[] paramArrayOfString)
{
File[] arrayOfFile = new File[paramArrayOfString.length];
for (int i = 0; ; i++)
{
if (i >= paramArrayOfString.length)
{
touch(arrayOfFile);
return;
}
arrayOfFile[i] = new File(paramArrayOfString[i]);
}
}
public static String trimType(String paramString)
{
int i = paramString.lastIndexOf(".");
String str;
if (i == -1)
str = paramString;
else
str = paramString.substring(0, str);
return str;
}
public void saveBitmap(Bitmap paramBitmap, String paramString)
throws IOException
{
Object localObject = new File(paramString);
try
{
localObject = new FileOutputStream((File)localObject);
if (paramBitmap.compress(Bitmap.CompressFormat.JPEG, 100, (OutputStream)localObject))
{
((FileOutputStream)localObject).flush();
((FileOutputStream)localObject).close();
}
return;
}
catch (FileNotFoundException localFileNotFoundException)
{
while (true)
localFileNotFoundException.printStackTrace();
}
catch (IOException localIOException)
{
while (true)
localIOException.printStackTrace();
}
}
}
[3] 获取程序的签字
来源: 互联网 发布时间: 2014-02-18
获取程序的签名
/*
* 获取程序的签名
*/
public String getAppSignature(String packname){
try {
PackageInfo packinfo =pm.getPackageInfo(packname, PackageManager.GET_SIGNATURES);
//获取到所有的权限
return packinfo.signatures[0].toCharsString();
} catch (NameNotFoundException e) {
e.printStackTrace();
return null;
}
}
最新技术文章: