• 1 Post
  • 4 Comments
Joined 2 years ago
cake
Cake day: July 30th, 2023

help-circle


  • A dishwasher has two major cycles that are relevant to dish soap. One is the I’ll show about 15 minutes. And the there is the main wash, which is like an hour plus depending. If you don’t use powdered dish soap and split it up then you’re missing the advantage of the prewash.

    Second half is focused on the effect of heat and why you should drain your water line of cold water through your faucet before you start your dishwasher. By doing that, you increase the heat and you increase the longevity of that heat on is that are in your dishwasher. It’s worth noting that heat is good for dishwashing liquid both because it helps the enzyme break down and also probably breaks down with the food material at some cases.

    Beyond that, he was very enthusiastic about his new soap, which he helped create, and rightfully so. Double blind test, it came out very well against premium pods, and he was able to prove his whole point about pods not being useful in a prewash.


  • Try this Python script:

    from PIL import Image, ImageDraw, ImageFont
    import os
    from pathlib import Path
    
    def watermark_from_filename(input_dir, output_dir=None, 
                               position='bottom-right', 
                               font_size=36,
                               color='white',
                               opacity=200):
        """
        Add watermark to images using their filename (without extension)
        
        Args:
            input_dir: Directory containing images
            output_dir: Output directory (if None, creates 'watermarked' subfolder)
            position: 'bottom-right', 'bottom-left', 'top-right', 'top-left', 'center'
            font_size: Size of the watermark text
            color: Color of the text ('white', 'black', or RGB tuple)
            opacity: Transparency (0-255, 255 is fully opaque)
        """
        
        # Setup directories
        input_path = Path(input_dir)
        if output_dir is None:
            output_path = input_path / 'watermarked'
        else:
            output_path = Path(output_dir)
        
        output_path.mkdir(exist_ok=True)
        
        # Supported image formats
        supported_formats = {'.jpg', '.jpeg', '.png', '.tiff', '.bmp'}
        
        # Process each image
        for img_file in input_path.iterdir():
            if img_file.suffix.lower() not in supported_formats:
                continue
                
            print(f"Processing: {img_file.name}")
            
            # Open image
            img = Image.open(img_file)
            
            # Convert to RGBA if needed (for transparency support)
            if img.mode != 'RGBA':
                img = img.convert('RGBA')
            
            # Create transparent overlay
            txt_layer = Image.new('RGBA', img.size, (255, 255, 255, 0))
            draw = ImageDraw.Draw(txt_layer)
            
            # Get filename without extension
            watermark_text = img_file.stem
            
            # Try to load a nice font, fall back to default if not available
            try:
                font = ImageFont.truetype("arial.ttf", font_size)
            except:
                try:
                    font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", font_size)
                except:
                    font = ImageFont.load_default()
            
            # Get text size using textbbox
            bbox = draw.textbbox((0, 0), watermark_text, font=font)
            text_width = bbox[2] - bbox[0]
            text_height = bbox[3] - bbox[1]
            
            # Calculate position
            margin = 20
            if position == 'bottom-right':
                x = img.width - text_width - margin
                y = img.height - text_height - margin
            elif position == 'bottom-left':
                x = margin
                y = img.height - text_height - margin
            elif position == 'top-right':
                x = img.width - text_width - margin
                y = margin
            elif position == 'top-left':
                x = margin
                y = margin
            elif position == 'center':
                x = (img.width - text_width) // 2
                y = (img.height - text_height) // 2
            else:
                x = img.width - text_width - margin
                y = img.height - text_height - margin
            
            # Convert color name to RGB if needed
            if color == 'white':
                rgb_color = (255, 255, 255, opacity)
            elif color == 'black':
                rgb_color = (0, 0, 0, opacity)
            else:
                rgb_color = (*color, opacity) if isinstance(color, tuple) else (255, 255, 255, opacity)
            
            # Draw text
            draw.text((x, y), watermark_text, font=font, fill=rgb_color)
            
            # Composite the watermark onto the image
            watermarked = Image.alpha_composite(img, txt_layer)
            
            # Convert back to RGB for JPEG
            if img_file.suffix.lower() in {'.jpg', '.jpeg'}:
                watermarked = watermarked.convert('RGB')
            
            # Save
            output_file = output_path / img_file.name
            watermarked.save(output_file, quality=95)
            print(f"Saved: {output_file.name}")
        
        print(f"\nDone! Watermarked images saved to: {output_path}")
    
    # Example usage:
    if __name__ == "__main__":
        # Watermark all images in current directory
        watermark_from_filename(
            input_dir=".",
            position='bottom-right',
            font_size=48,
            color='white',
            opacity=200
        )
    

    To use this script:

    1. Install Pillow: pip install Pillow

    2. Save the script as watermark_dates.py

    3. Run it in your image directory:

      python watermark_dates.py
      

    Customization options:

    • position: Choose where the watermark appears
    • font_size: Adjust text size
    • color: ‘white’, ‘black’, or RGB tuple like (255, 0, 0) for red
    • opacity: 0-255 (lower = more transparent)