[c++] libjpeg-turbo와 이미지 변형
libjpeg-turbo는 JPEG 이미지를 빠르게 압축하고 푸는 라이브러리이다. 이 라이브러리를 사용하여 이미지를 압축하는 방법에 대해 알아보고, 이미지에 효과를 적용하여 변형하는 방법을 살펴보겠다.
libjpeg-turbo 라이브러리 설치
libjpeg-turbo 라이브러리를 설치하려면 다음 명령을 사용하면 된다.
sudo apt-get install libjpeg-turbo
이미지 압축
libjpeg-turbo를 사용하여 이미지를 압축하려면 다음과 같은 단계를 따라야 한다.
jpeg_compress_struct
구조체를 초기화한다.- 입력 이미지를 로드하고
jpeg_create_compress
함수를 사용하여 JPEG 압축 세션을 초기화한다. jpeg_set_defaults
및jpeg_set_quality
함수를 사용하여 JPEG 압축 옵션을 설정한다.jpeg_start_compress
와jpeg_write_scanlines
함수를 사용하여 이미지를 압축한다.jpeg_finish_compress
및jpeg_destroy_compress
함수를 사용하여 압축을 종료한다.
예를 들어, 다음과 같이 C++ 코드로 이미지를 압축할 수 있다.
#include <jpeglib.h>
// ... 이미지 데이터를 가져오는 코드 ...
jpeg_compress_struct cinfo;
jpeg_create_compress(&cinfo);
// ... 압축 옵션 설정 ...
jpeg_start_compress(&cinfo, TRUE);
// ... 이미지 압축 ...
jpeg_finish_compress(&cinfo);
jpeg_destroy_compress(&cinfo);
이미지 변형
libjpeg-turbo를 사용하여 이미지를 변형하려면 cjpeg
및 djpeg
유틸리티를 사용할 수 있다.
예를 들어, 이미지를 뒤집거나 회전시키려면 다음과 같이 사용할 수 있다.
djpeg -outfile output.jpg input.jpg | cjpeg -grayscale -rotate 90 -outfile output_transformed.jpg
위의 명령은 input.jpg
파일을 읽어 회색조로 변환한 후 90도 회전시킨 뒤 output_transformed.jpg
파일로 저장한다.
libjpeg-turbo 라이브러리를 사용하여 이미지를 압축하고 변형하는 방법을 살펴보았다. 더 많은 세부 정보는 libjpeg-turbo 공식 웹사이트에서 확인할 수 있다.
참고 자료: