-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoptimize-images.js
More file actions
150 lines (131 loc) Β· 6.05 KB
/
Copy pathoptimize-images.js
File metadata and controls
150 lines (131 loc) Β· 6.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
// Simple image optimization script
// This will handle basic file operations and provide guidance for manual optimization
const filesToProcess = [
// Large music files that need compression
{
path: '/Users/francischukwuma/shinettw website/public/music/ep-the-chosen-one-original.jpg',
target: 'ep-the-chosen-one-original-optimized.jpg',
category: 'music',
currentSize: '45MB',
targetSize: '<2MB',
action: 'compress'
},
{
path: '/Users/francischukwuma/shinettw website/public/music/single-time.jpg',
target: 'single-time-optimized.jpg',
category: 'music',
currentSize: '13MB',
targetSize: '<2MB',
action: 'compress'
},
// Large blog images
{
path: '/Users/francischukwuma/shinettw website/public/images/blog/encore-performance.jpg',
target: 'encore-performance-optimized.jpg',
category: 'blog',
currentSize: '13MB',
targetSize: '<500KB',
action: 'compress'
},
{
path: '/Users/francischukwuma/shinettw website/public/images/blog/audience-energy.jpg',
target: 'audience-energy-optimized.jpg',
category: 'blog',
currentSize: '13MB',
targetSize: '<500KB',
action: 'compress'
},
// Medium music files
{
path: '/Users/francischukwuma/shinettw website/public/music/collab-bob-sinclar-i-go.jpg',
target: 'collab-bob-sinclar-i-go-optimized.jpg',
category: 'music',
currentSize: '1.2MB',
targetSize: '<500KB',
action: 'optimize'
},
{
path: '/Users/francischukwuma/shinettw website/public/music/loco-cover.jpg',
target: 'loco-cover-optimized.jpg',
category: 'music',
currentSize: '792KB',
targetSize: '<500KB',
action: 'optimize'
},
// AVIF conversion
{
path: '/Users/francischukwuma/shinettw website/public/images/events/event-lagos-encore-photo.jpg',
target: 'event-lagos-encore-photo-converted.jpg',
category: 'events',
currentSize: '43KB',
targetSize: '43KB',
action: 'convert-avif'
}
];
console.log('πΌοΈ Image Optimization Plan');
console.log('============================\n');
filesToProcess.forEach((file, index) => {
console.log(`${index + 1}. ${file.category.toUpperCase()} - ${path.basename(file.path)}`);
console.log(` Current: ${file.currentSize} β Target: ${file.targetSize}`);
console.log(` Action: ${file.action}`);
console.log(` Output: ${file.target}\n`);
});
console.log('π Manual Optimization Steps:');
console.log('==============================');
console.log('1. Install ImageMagick: brew install imagemagick');
console.log('2. Use online tools like TinyPNG, Squoosh, or ImageOptim');
console.log('3. Use Photoshop/GIMP with "Save for Web"');
console.log('4. Use command line tools:\n');
console.log('ImageMagick Commands:');
console.log('====================');
console.log('# Compress large files');
console.log('convert input.jpg -quality 85 -resize 1000x1000 output.jpg');
console.log('');
console.log('# Convert AVIF to JPG');
console.log('convert input.avif output.jpg');
console.log('');
console.log('# Optimize for web');
console.log('convert input.jpg -strip -interlace Plane -quality 85 output.jpg');
console.log('\nπ― Quality Targets:');
console.log('==================');
console.log('Music Covers: 1000x1000px, 90% quality, <500KB');
console.log('Blog Images: 1200x800px, 85% quality, <300KB');
console.log('Event Images: 800x600px, 85% quality, <200KB');
console.log('Background: 1920x1080px, 80% quality, <500KB');
// Create optimization script for each file
const createOptimizationScript = () => {
const script = `#!/bin/bash
# Image Optimization Script
# Run this after installing ImageMagick
echo "πΌοΈ Starting image optimization..."
# Create optimized directories
mkdir -p "/Users/francischukwuma/shinettw website/public/music/optimized"
mkdir -p "/Users/francischukwuma/shinettw website/public/images/blog/optimized"
mkdir -p "/Users/francischukwuma/shinettw website/public/images/events/optimized"
echo "π Created optimization directories"
# Convert AVIF to JPG
echo "π Converting AVIF to JPG..."
convert "/Users/francischukwuma/shinettw website/public/images/events/event-lagos-encore-photo.jpg" "/Users/francischukwuma/shinettw website/public/images/events/event-lagos-encore-photo-converted.jpg"
# Compress large music files
echo "ποΈ Compressing large music files..."
convert "/Users/francischukwuma/shinettw website/public/music/ep-the-chosen-one-original.jpg" -quality 85 -resize 1000x1000 "/Users/francischukwuma/shinettw website/public/music/optimized/ep-the-chosen-one-original.jpg"
convert "/Users/francischukwuma/shinettw website/public/music/single-time.jpg" -quality 85 -resize 1000x1000 "/Users/francischukwuma/shinettw website/public/music/optimized/single-time.jpg"
# Compress large blog images
echo "ποΈ Compressing large blog images..."
convert "/Users/francischukwuma/shinettw website/public/images/blog/encore-performance.jpg" -quality 85 -resize 1200x800 "/Users/francischukwuma/shinettw website/public/images/blog/optimized/encore-performance.jpg"
convert "/Users/francischukwuma/shinettw website/public/images/blog/audience-energy.jpg" -quality 85 -resize 1200x800 "/Users/francischukwuma/shinettw website/public/images/blog/optimized/audience-energy.jpg"
# Optimize medium music files
echo "β‘ Optimizing medium music files..."
convert "/Users/francischukwuma/shinettw website/public/music/collab-bob-sinclar-i-go.jpg" -quality 90 -resize 1000x1000 "/Users/francischukwuma/shinettw website/public/music/optimized/collab-bob-sinclar-i-go.jpg"
convert "/Users/francischukwuma/shinettw website/public/music/loco-cover.jpg" -quality 90 -resize 1000x1000 "/Users/francischukwuma/shinettw website/public/music/optimized/loco-cover.jpg"
echo "β
Optimization complete!"
echo "π Check file sizes in the optimized directories"
`;
fs.writeFileSync('/Users/francischukwuma/shinettw website/optimize-images.sh', script);
console.log('\nπ Created optimization script: optimize-images.sh');
console.log('Run: chmod +x optimize-images.sh && ./optimize-images.sh');
};
createOptimizationScript();