Deddy commited on
Commit
ae07b07
1 Parent(s): 49dfbfc

Update process_energy.py

Browse files
Files changed (1) hide show
  1. process_energy.py +46 -21
process_energy.py CHANGED
@@ -167,8 +167,35 @@ def activate_transfer():
167
  new_mp = recipient_mp + transferred_mp
168
  return new_mp
169
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  # Fungsi untuk membuat video afirmasi dengan audio
171
- def create_affirmation_frames(tujuan, nama_anda):
172
  # Texts for the video
173
  texts = [
174
  f"HAI {nama_anda.upper()}! DENGARLAH SUARA ENERGI SEMESTA DIGITAL SELAMA 3 MENIT AGAR PROSES TRANSFER BERJALAN MULUS.",
@@ -177,37 +204,35 @@ def create_affirmation_frames(tujuan, nama_anda):
177
  f"SAYA, {nama_anda.upper()}, MENARIK HAL-HAL POSITIF DALAM HIDUP SAYA. SAYA AKAN MENCAPAI TUJUAN SAYA SUKSES DI: {tujuan.upper()}",
178
  ]
179
 
180
- frames = []
181
- width, height = 640, 480 # Ukuran gambar
182
- font = ImageFont.truetype("arial.ttf", 24) # Pastikan path font sesuai dengan environment Anda
183
-
184
- for text in texts:
185
- img = Image.new('RGB', (width, height), color=(0, 0, 0))
186
- d = ImageDraw.Draw(img)
187
- lines = text.split(' ')
188
- line_length = 4
189
- formatted_text = '\n'.join([' '.join(lines[i:i + line_length]) for i in range(0, len(lines, line_length))])
190
- d.text((width / 2, height / 2), formatted_text, font=font, fill=(255, 255, 255), align="center", anchor="mm")
191
- frames.extend([np.array(img)] * 150) # 150 frames untuk 5 detik dengan 30 fps
192
 
193
- return frames
 
 
 
 
 
194
 
195
- def create_affirmation_video_with_audio(tujuan, nama_anda, audio_filename, output_filename="affirmation_video.mp4"):
196
- frames = create_affirmation_frames(tujuan, nama_anda)
197
- clip = ImageSequenceClip(frames, fps=30)
198
 
199
- # Load background
200
- background_clip = VideoFileClip("spin_energy.gif").subclip(0, 2).fx(loop, duration=180)
201
 
202
  # Load the generated audio file
203
  audio_clip = AudioFileClip(audio_filename)
204
 
205
  # Concatenate text clips with background
206
- video = CompositeVideoClip([background_clip.set_duration(clip.duration), clip.set_opacity(0.6).set_duration(clip.duration)])
207
- video = video.set_duration(180).set_audio(audio_clip)
208
 
209
  # Write the result to a file
210
  video.write_videofile(output_filename, fps=24, codec='libx264')
 
 
 
 
211
  """
212
  def create_affirmation_video_with_audio(tujuan, nama_anda, audio_filename, output_filename="affirmation_video.mp4"):
213
  # Texts for the video
 
167
  new_mp = recipient_mp + transferred_mp
168
  return new_mp
169
 
170
+ # Fungsi untuk membuat frame gambar afirmasi
171
+ def create_affirmation_frames(texts, width=640, height=480, duration=5):
172
+ frames = []
173
+ font_path = "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf" # Path font default
174
+ font_size = 24
175
+
176
+ for text in texts:
177
+ frame = Image.new("RGB", (width, height), color="black")
178
+ draw = ImageDraw.Draw(frame)
179
+
180
+ # Menggunakan font default
181
+ try:
182
+ font = ImageFont.truetype(font_path, font_size)
183
+ except IOError:
184
+ font = ImageFont.load_default()
185
+
186
+ lines = text.split('\n')
187
+ y_text = height // 2 - (len(lines) * font_size) // 2
188
+ for line in lines:
189
+ width_text, height_text = draw.textsize(line, font=font)
190
+ draw.text(((width - width_text) / 2, y_text), line, font=font, fill="white")
191
+ y_text += height_text
192
+
193
+ frames.append(frame)
194
+
195
+ return frames
196
+
197
  # Fungsi untuk membuat video afirmasi dengan audio
198
+ def create_affirmation_video_with_audio(tujuan, nama_anda, audio_filename, output_filename="affirmation_video.mp4"):
199
  # Texts for the video
200
  texts = [
201
  f"HAI {nama_anda.upper()}! DENGARLAH SUARA ENERGI SEMESTA DIGITAL SELAMA 3 MENIT AGAR PROSES TRANSFER BERJALAN MULUS.",
 
204
  f"SAYA, {nama_anda.upper()}, MENARIK HAL-HAL POSITIF DALAM HIDUP SAYA. SAYA AKAN MENCAPAI TUJUAN SAYA SUKSES DI: {tujuan.upper()}",
205
  ]
206
 
207
+ # Create frames
208
+ frames = create_affirmation_frames(texts, width=640, height=480)
 
 
 
 
 
 
 
 
 
 
209
 
210
+ # Save frames as images and load into a video
211
+ image_filenames = []
212
+ for i, frame in enumerate(frames):
213
+ image_filename = f"frame_{i}.png"
214
+ frame.save(image_filename)
215
+ image_filenames.append(image_filename)
216
 
217
+ # Load images as video clips
218
+ clips = [ImageClip(m).set_duration(duration) for m in image_filenames]
 
219
 
220
+ # Load background GIF and loop it
221
+ background_clip = VideoFileClip("spin_energy.gif").subclip(0, 2).fx(loop, duration=len(clips) * duration)
222
 
223
  # Load the generated audio file
224
  audio_clip = AudioFileClip(audio_filename)
225
 
226
  # Concatenate text clips with background
227
+ video = CompositeVideoClip([background_clip] + clips)
228
+ video = video.set_duration(len(clips) * duration).set_audio(audio_clip)
229
 
230
  # Write the result to a file
231
  video.write_videofile(output_filename, fps=24, codec='libx264')
232
+
233
+ # Remove temporary image files
234
+ for image_filename in image_filenames:
235
+ os.remove(image_filename)
236
  """
237
  def create_affirmation_video_with_audio(tujuan, nama_anda, audio_filename, output_filename="affirmation_video.mp4"):
238
  # Texts for the video