iOS 에서 개발 한 image 그림 압축 및 지정 한 크기 로 압축 하 는 두 가지 방법

2428 단어 iosimage그림 압축

///    
+ (NSData *)imageCompressToData:(UIImage *)image{
  NSData *data=UIImageJPEGRepresentation(image, 1.0);
  if (data.length>300*1024) {
    if (data.length>1024*1024) {//1M    
      data=UIImageJPEGRepresentation(image, 0.1);
    }else if (data.length>512*1024) {//0.5M-1M
      data=UIImageJPEGRepresentation(image, 0.5);
    }else if (data.length>300*1024) {//0.25M-0.5M
      data=UIImageJPEGRepresentation(image, 0.9);
    }
  }
  return data;
}
ps:iOS 의 그림 을 지정 한 크기 로 압축 합 니 다.
 iOS 에서 저 희 는 메모 리 를 절약 하기 위해 그림 을 처리 하고 프로그램 을 최적화 시 키 며 프로그램의 효율 을 높 여야 합 니 다.다음은 자신의 요구 에 따라 그림 의 크기 를 다시 설정 하 는 것 입 니 다.
1.그림 을 압축 하 는 방법 은 두 가지 가 있 는데 첫 번 째 는 그림 의 크기 를 압축 하고 그림 의 사 이 즈 를 다시 만 드 는 것 이다.다음 과 같다.

/** 
 *             
 * 
 * @param image      
 * @param size      
 * 
 * @return      
 */ 
-(UIImage *)compressOriginalImage:(UIImage *)image toSize:(CGSize)size{ 
  UIImage * resultImage = image; 
  UIGraphicsBeginImageContext(size); 
  [resultImage drawInRect:CGRectMake(00, 0, size.width, size.height)]; 
  UIGraphicsEndImageContext(); 
  return image; 
} 
2.두 번 째 는 그림 의 파일 크기 를 수정 하 는 것 입 니 다.다음 과 같 습 니 다.

/** 
 *             
 * 
 * @param image      
 * @param size     (   ) 
 * 
 * @return         
 */ 
- (NSData *)compressOriginalImage:(UIImage *)image toMaxDataSizeKBytes:(CGFloat)size{ 
  NSData * data = UIImageJPEGRepresentation(image, 1.0); 
  CGFloat dataKBytes = data.length/1000.0; 
  CGFloat maxQuality = 0.9f; 
  CGFloat lastData = dataKBytes; 
  while (dataKBytes > size && maxQuality > 0.01f) { 
    maxQuality = maxQuality - 0.01f; 
    data = UIImageJPEGRepresentation(image, maxQuality); 
    dataKBytes = data.length / 1000.0; 
    if (lastData == dataKBytes) { 
      break; 
    }else{ 
      lastData = dataKBytes; 
    } 
  } 
  return data; 
} 
이것 은 그림 을 압축 하 는 두 가지 방식 이다.
총결산
위 에서 말씀 드 린 것 은 편집장 님 께 서 소개 해 주신 iOS 에서 개발 한 이미지 사진 을 압축 하고 지 정 된 크기 로 압축 하 는 두 가지 방법 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기