|
import os
|
|
import pyheif
|
|
from PIL import Image
|
|
|
|
def convert_heic_to_jpeg_and_remove(source_folder):
|
|
converted_count = 0
|
|
for filename in os.listdir(source_folder):
|
|
if filename.lower().endswith(".heic"):
|
|
heic_path = os.path.join(source_folder, filename)
|
|
jpeg_filename = os.path.splitext(filename)[0] + ".jpeg"
|
|
jpeg_path = os.path.join(source_folder, jpeg_filename)
|
|
|
|
try:
|
|
heif_file = pyheif.read(heic_path)
|
|
image = Image.frombytes(
|
|
heif_file.mode,
|
|
heif_file.size,
|
|
heif_file.data,
|
|
"raw",
|
|
heif_file.mode,
|
|
heif_file.stride,
|
|
)
|
|
image.save(jpeg_path, "JPEG")
|
|
os.remove(heic_path)
|
|
converted_count += 1
|
|
except ValueError as e:
|
|
print(f"Skipping {heic_path}: {e}")
|
|
|
|
total_files = len(os.listdir(source_folder))
|
|
return converted_count, total_files
|
|
|
|
def convert_png_to_jpeg(png_dir, jpeg_dir):
|
|
if not os.path.exists(jpeg_dir):
|
|
os.makedirs(jpeg_dir)
|
|
|
|
for filename in os.listdir(png_dir):
|
|
if filename.endswith('.png'):
|
|
png_file = os.path.join(png_dir, filename)
|
|
img = Image.open(png_file)
|
|
rgb_img = img.convert('RGB')
|
|
jpeg_file = os.path.join(jpeg_dir, filename.replace('.png', '.jpg'))
|
|
rgb_img.save(jpeg_file, 'JPEG')
|
|
|
|
if __name__ == "__main__":
|
|
source_folder = "datasets/imagedata"
|
|
converted_count, total_files = convert_heic_to_jpeg_and_remove(source_folder)
|
|
print(f"Total HEIC files converted: {converted_count}")
|
|
print(f"Total number of files in the folder: {total_files}")
|
|
|
|
png_directory = 'datasets/imagedata'
|
|
jpeg_directory = 'datasets/imagedata/images'
|
|
convert_png_to_jpeg(png_directory, jpeg_directory)
|
|
|