배치 이미지 리시딩을 최적화하는 것은 이미지 무거운 응용 프로그램 (전자 상거래 카탈로그, 갤러리, 피드)에 필수적입니다. Aspose.Imaging for .NET은 코드를 완전히 관리하고 크로스 플랫폼을 유지하는 동안 효율적으로 이미지를 로드, 재시작 및 암호화 할 수 있습니다.
완전한 예제
단계 1 : 적절한 재구성 전략을 선택하십시오.
당신의 출력 제한과 일치하는 전략을 선택하십시오 :
- 제한 상자 (소매를 위해 권장): 사용
FitInto
내부에 적합한 이미지targetWidth × targetHeight
* 변형 없음** (방향 비율을 유지) - ** 절대 크기 (정확한 픽셀): ** 소비자가 고정된 크기를 필요로 하는 경우 절대로 재량을 사용하십시오 (측면 비율이 다르다면 방해가 발생할 수 있습니다).
- 퍼센트 스케일링: 동일한 크기 (예를 들어, 원본의 50 %)에서 단일 하락을위한 핸드.
** 팁:** 스토어 프론트 네트워크 및 소셜 카드, FitInto
이것은 일반적으로 가장 안전한 결함입니다.
2단계 : 메모리 컨트롤 및 캐싱
Aspose.Imaging은 구성 가능한 캐싱을 지원하므로 큰 배치가 RAM을 과장하지 않습니다.
- 대규모 일자리(SSD 지원 경로)에 대 한 ** 디스크 캐싱**을 선호합니다.
- 처리하기 전에 캐시 폴더와 크기 예산을 설정합니다.
// Configure once at startup (example values)
Aspose.Imaging.Cache.CacheType = Aspose.Imaging.Cache.CacheType.CacheOnDisk;
Aspose.Imaging.Cache.CacheFolder = @"D:\imaging-cache";
Aspose.Imaging.Cache.CacheSize = 1L * 1024 * 1024 * 1024; // 1 GB
또한 :
- 각각 사용할 수 있습니다
Image
그것이 구원될 때. - 한 번에 여러 개의 암호화 된 이미지를 생생하게 유지하지 마십시오 - 파일 당 프로세스.
단계 3 : 안전하게 균형을 맞추십시오
사용하기 Parallel.ForEach
(그러나 그것은 그들로 하여금 그들을 섬기게 하려 함이라)
- 세트
MaxDegreeOfParallelism
상자에 대한 민감한 값 (CPU 코어, I/O 속도, 메모리 헤드룸) - 각 작업은 자신의 작업을 수행해야합니다 **
Image
예를 들어, 끈을 통해 이미지 개체를 공유하지 마십시오. - 암호화 옵션을 변함없이 저장하여 혼란을 피하십시오.
** 가이드 :** 시작하여 MaxDegreeOfParallelism = Environment.ProcessorCount
프로파일을 수정한 후에
단계 4 : 암호화 및 품질을 의도적으로 선택
- JPEG 출력의 경우 JpegOptions.Quality를 사용하여 톤 파일 크기 vs. 품질 (일반적인 달콤한 점 : 75–90).
- 투명성 또는 손실없는 수출을 요구하는 자산의 경우 대신 PngOptions를 사용하십시오.
- 사용 사례에 따라 일관된 출력 형식을 유지하십시오 (예 : 사진을위한 JPEG, UI 자산에 대한 PNG).
단계 5 : 짧은 회로 실패; 배치 이동 유지
각 파일을 시도 / 캡 (당신이 한 것처럼)에 삽입하고 경로 + 예외를 기록합니다.
- 비 이미지 파일을 스크립트 (전면에 필터 확장)
- 저축을 확인하기 위해 원본 및 출력 크기를 기록합니다.
- 다시 실행하기 위해 CSV에 실패를 작성합니다.
단계 6 : I/O 위생
- 출력 디렉토리가 존재하고 ** 빠른 디스크** (SSD)에 있는지 확인합니다.
- 입력을 통해 출력을 쓰는 것을 피하십시오; 별도의 디렉토리로 쓰십시오.
- 수백만 개의 파일이 있다면 디렉토리 목록을 빠르게 유지하기 위해 서브폴더로 출력을 나누십시오.
단계 7 : 빠른 건강 검사로 결과를 확인하십시오.
재설정 후 :
- 목적지에 대 한 폭 / 높이를 확인합니다.
- 확인 파일 형식/ 확장은 사용된 코더와 일치합니다.
- 일반적인 경계 사례 (파노라마, 작은 아이콘, 투명한 PNG)에 대한 시각적 품질을 점검합니다.
최고의 체크리스트 (Checklist)
- 캐시 : * 세트
CacheType
,CacheFolder
그리고 합리적인CacheSize
.
- 캐시 : * 세트
- ** 균형 : ** 사용하기
Parallel.ForEach
튀김과 함께MaxDegreeOfParallelism
공유하지 않음Image
예를 들면 - 이용 가능 : * 항상 사용 가능
Image
곧바로
- 이용 가능 : * 항상 사용 가능
- 암호화 : * 사용하기
JpegOptions.Quality
JPEG에 대 한; 스위치PngOptions
손실없는 / 알파
- 암호화 : * 사용하기
- I/O: 별도의 입력/출력 뿌리; 사전에 만들어진 디렉토리.
- ** 필터링:** 충전 전에 알려진 이미지 확장 프로그램에 제한합니다.
- Logging: 레코드 실패 및 기본 매트릭스 (계산, MB 입력/출).
- ** 업데이트:** 지속적인 성능 개선을 위해 Aspose를 유지합니다.