mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-31 03:53:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| """Generates versions of landing page images to be served in different conditions."""
 | |
| 
 | |
| import glob
 | |
| import os
 | |
| import sys
 | |
| from pathlib import Path
 | |
| 
 | |
| ZULIP_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 | |
| if ZULIP_PATH not in sys.path:
 | |
|     sys.path.append(ZULIP_PATH)
 | |
| 
 | |
| import pyvips
 | |
| 
 | |
| LANDING_IMAGES_DIR = os.path.join(ZULIP_PATH, "static", "images", "landing-page", "hello")
 | |
| ORIGINAL_IMAGES_DIR = os.path.join(LANDING_IMAGES_DIR, "original")
 | |
| GENERATED_IMAGES_DIR = os.path.join(LANDING_IMAGES_DIR, "generated")
 | |
| 
 | |
| 
 | |
| def get_x_size(size: int, x: int) -> int:
 | |
|     return int(x / 3.0 * size)
 | |
| 
 | |
| 
 | |
| def generate_landing_page_images() -> None:
 | |
|     if not os.path.exists(GENERATED_IMAGES_DIR):
 | |
|         os.mkdir(GENERATED_IMAGES_DIR)
 | |
|     else:
 | |
|         # Delete folder contents to avoid stale images between different versions of the script.
 | |
|         for file in os.listdir(GENERATED_IMAGES_DIR):
 | |
|             os.remove(os.path.join(GENERATED_IMAGES_DIR, file))
 | |
| 
 | |
|     for image_file_path in glob.glob(f"{ORIGINAL_IMAGES_DIR}/*"):
 | |
|         file_name = Path(image_file_path).stem
 | |
|         image = pyvips.Image.new_from_file(image_file_path)
 | |
|         size = 2
 | |
|         scaled_width = get_x_size(image.width, size)
 | |
|         scaled_height = get_x_size(image.height, size)
 | |
|         scaled = image.thumbnail_image(scaled_width, height=scaled_height)
 | |
|         for format in ("webp[Q=60]", "jpg[Q=80,optimize-coding=true]"):
 | |
|             scaled.write_to_file(f"{GENERATED_IMAGES_DIR}/{file_name}-{size}x.{format}")
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     generate_landing_page_images()
 |