본문 바로가기
Python

[Python] 파이썬 heic jpg 변환 이미지 파일 밝기 조절

by 퍼포먼스마케팅코더 2022. 6. 5.
반응형

안녕하세요, 마케팅코더입니다.

오늘은 파이썬으로 heic jpg 변환, png jpg 변환 이후 최종 jpg 파일 내 이미지 파일 밝기를 조절하는 방법에 대해 말씀드리고자 합니다. 보통은 이미지 파일 작업시 heic 및 jpg 등 파일 변환 등으로 문제가 많이 발생합니다. 또한 이미지 밝기 조절 많이 해야 되는 경우에 신경써야되는 일도 많이 겪습니다. 이에 파이썬 자동화로 알아보는 시간을 가져보도록 하겠습니다.

 

먼저 저는 3.9.7 파이썬 버전을 사용했습니다. 이외 작업은 주피터 노트북에서 실행한 결과입니다. 

오늘 파이썬의 작업은 Heic, png, jpg 파일이 있을 경우, 이를 전부 jpg 파일로 변환하여 이후 이미지 파일 밝기 조절까지 자동화되는 작업입니다.

 

[Python] 파이썬 heic jpg 변환하기

 

먼저 처음에 heic 파일을 jpg 로 변환해야됩니다. 하기 작업을 하기 전에 import 리스트가 있습니다.

하기 import 리스트를 보시고 없다고 나올시 반드시 패키지 설치를 해줘야 됩니다. 

주피터 노트북에서 install 작업시 반드시 하기 명령어를 치시기 바랍니다. 명령어는 하기와 같이 작성해주시면 됩니다.

 

!pip install package name

 

[Python]  파이썬 image magick 설치 후 heic jpg 변환하기

 

이에 하기와 같은 명령어가 있는데요, 기본적으로 파이썬에서 heic 파일을 jpg로 변환하기 위해서는 image magick  파일이 설치돼 있어야됩니다. 하기 주소로 가셔서 "ImageMagick-7.1.0-36-Q16-HDRI-x64-dll.exe"  파일을 다운로드 하셔서 설치해주시길 바랍니다. (윈도우 64비트 기준입니다.)

 

https://imagemagick.org/script/download.php

 

그리고 하기와 같은 명령어를 작성해 주시면 됩니다. 

(유의할 점은 디렉토리 설정과, 해당 설치된 magick.exe 파일의 디렉토리 위치입니다.)

하기의 코딩은 먼저 각 해당 디렉토리 내 heic 파일을 불러들이고, 해당 heic 파일 발견시 자동으로 magick 파일을 실행시켜 jpg로 바꾸는 작업을 합니다. 

 

import os, subprocess
import glob
from PIL import Image
import numpy as np
import cv2

############################ heic 파일 jpg 변환 ######################################

directory = 'C:/Users/user/raw/test/'  #디렉토리 설정

for filename in os.listdir(directory) :
    #print(filename)
    if filename.lower().endswith(".heic") :
        print('Converting ' + os.path.join(directory, filename))
        subprocess.run(["C:/Program Files/ImageMagick-7.1.0-Q16-HDRI/magick.exe", os.path.join(directory, filename), os.path.join(directory, filename[0:-5] + '.jpg')])

print("heic 파일 jpg 변환 전부 다 완료되었습니다.")

 

 

[Python]  파이썬 png 파일을 jpg로 변환하기

 

다음은 png 파일을 jpg로 변환하는 작업입니다.

하기의 코딩은 경로 디렉토리 내에 png 파일명을 전부 리스트에 담고, 각 리스트를 for 문 구조로 하나씩 불러와서 jpg로 변환하는 작업입니다. 

 

############################ png 파일 jpg 변환 ######################################

img_lists = glob.glob(str(directory)+'*.png') #jpg 파일만 가져오기

img_files = []  #리스트

for i in img_lists :
    i = i.replace("\\", "/") #파일명 변경
    img_files.append(i)   #리스트 담기

dir_path  = directory  #폴더 디렉토리
#img_lists = os.listdir(dir_path) #폴더 내 이미지 리스트에 담기

n = 1

for img_f in img_files :
    #img_dir = str(dir_path) + str(img_f)
    img_dir = str(img_f)
    #print(img_dir)
    img = Image.open(img_dir).convert('RGB')  #원파일
    #img_resize = img.resize((360, 480)) #사이즈 조절  (360 x 480)
    #img_resize.save(str(dir_path) +'test_result_'+str(n)+'.jpg') #결과파일
    img.save(str(dir_path) +'photo_result_'+str(n)+'.jpg') #결과파일
    n +=1

print("png 파일 jpg 변환(완료)")
#print(n)

 

Python 파이썬 이미지 파일 사이즈 크기 조절

 

다음은 위 코딩을 통해 모두 변환된 jpg 파일을 가지고 이미지 리사이징과 파일조절을 하는 코딩입니다. 이미지 사이즈 조절 및 파일 크기 조절이 필요하면 하기 파이썬 부분을 참고하시면 됩니다. 

 

############################ 이미지 리사이징 or 파일조절 ############################

img_lists = glob.glob(str(directory)+'*.jpg') #jpg 파일만 가져오기

img_files = []  #리스트

for i in img_lists :
    i = i.replace("\\", "/") #파일명 변경
    img_files.append(i)   #리스트 담기

dir_path  = directory  #폴더 디렉토리
#img_lists = os.listdir(dir_path) #폴더 내 이미지 리스트에 담기

#n = 1

#for img_f in img_files :
    #img_dir = str(dir_path) + str(img_f)
#    img_dir = str(img_f)
    #print(img_dir)
#    img = Image.open(img_dir) #원파일
    #img_resize = img.resize((360, 480)) #사이즈 조절  (360 x 480)
    #img_resize.save(str(dir_path) +'test_result_'+str(n)+'.jpg') #결과파일
#    img.save(str(dir_path) +'test_result_'+str(n)+'.jpg') #결과파일
#    n +=1

print("이미지 리사이징 or 파일조절 완료")
#print(n)

 

Python 파이썬 이미지 밝기 조절

 

마지막 코딩은 최종 jpg 변환된 이미지 파일들을 이미지 밝기 조절을 합니다.

val 값은 40으로 조정했으며, 결과 파일로 해당 이미지 밝기를 확인할 수 있습니다. 

 

######################## 밝기 조절(40) ########################

n =1 

for img_f in img_files :
    src = cv2.imread(img_f, cv2.IMREAD_COLOR) #회색처리
    val = 40 #(값)
    array = np.full(src.shape, (val, val, val), dtype=np.uint8) #(백터화)
    add = cv2.add(src, array) #이미지 밝기값 조절 넣기
    cv2.imwrite('C:/Users/user/raw/test/submit_img_'+str(n)+'_color.jpg', add) #이미지 밝기값 파일 넣기
    cv2.waitKey(0) 
    cv2.destroyAllWindows()
    n +=1

print("이미지 밝기 조절 완료")

 

 

 

Python 파이썬 최종 코딩 돌린 결과물 시연

 

이외 하기 동영상은 파이썬으로 Heic, png 파일을 jpg로 돌린 이후 이미지 사이즈 통일 하거나, 최종 이미지 밝기 조절을 통한 결과물을 확인 할 수 있습니다. 각각의 최종 파일 결과물은 submit_img_numbering_color.jpg 파일 형식으로 나오게 됩니다. 

 

Python 파이썬 heic jpg 변환, 이미지 파일 밝기 조절

 

더 궁금하시거나 문의 등이 있으시면 하기 big203040@naver.com 로 답변주세요. 

 

이외 전체 코딩은 아래 깃허브에 참고하시면 됩니다. 

 

https://github.com/DBhyeong/digital-marketing/blob/main/%5BPython%5D-%ED%8C%8C%EC%9D%B4%EC%8D%AC-heic-jpg-%EB%B3%80%ED%99%98-%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%8C%8C%EC%9D%BC-%EB%B0%9D%EA%B8%B0-%EC%A1%B0%EC%A0%88

 

GitHub - DBhyeong/digital-marketing: 디지털 마케팅에 필요한 업무자동화, 데이터분석, SQL, 파이썬, python,

디지털 마케팅에 필요한 업무자동화, 데이터분석, SQL, 파이썬, python,시장조사, 키워드최적화,SEO 등에 유용한 팁을 공유 - GitHub - DBhyeong/digital-marketing: 디지털 마케팅에 필요한 업무자동화, 데이터

github.com

 

 

 

 

고맙습니다. 

반응형

댓글