added normalization of titles since font doesnt support it lol
This commit is contained in:
parent
d00edefc95
commit
55e0ad611c
@ -329,7 +329,11 @@ class AlbumCollageGenerator {
|
|||||||
$group_spacing = 50;
|
$group_spacing = 50;
|
||||||
|
|
||||||
for ($i = 0; $i < min(count($albums), 25); $i++) {
|
for ($i = 0; $i < min(count($albums), 25); $i++) {
|
||||||
$album_text = $albums[$i]->author . ' - ' . $albums[$i]->album_name;
|
// Normalize album and author names to replace weird characters
|
||||||
|
$normalized_author = $this->normalize_text($albums[$i]->author);
|
||||||
|
$normalized_album = $this->normalize_text($albums[$i]->album_name);
|
||||||
|
$album_text = "{$normalized_author} - {$normalized_album}";
|
||||||
|
|
||||||
$font = $this->is_japanese($album_text) ? $this->japanese_font : $this->western_font;
|
$font = $this->is_japanese($album_text) ? $this->japanese_font : $this->western_font;
|
||||||
|
|
||||||
$this->add_retro_text($image, $font_size, $text_x, $text_y, $text_color, $font, $album_text);
|
$this->add_retro_text($image, $font_size, $text_x, $text_y, $text_color, $font, $album_text);
|
||||||
@ -351,6 +355,30 @@ class AlbumCollageGenerator {
|
|||||||
return $image_data;
|
return $image_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Normalize text by replacing accented or special characters with standard ones.
|
||||||
|
*
|
||||||
|
* @param string $text The input text to normalize.
|
||||||
|
* @return string The normalized text.
|
||||||
|
*/
|
||||||
|
private function normalize_text($text) {
|
||||||
|
// Check if the intl extension is loaded
|
||||||
|
if (class_exists('Transliterator')) {
|
||||||
|
$transliterator = \Transliterator::create('NFD; [:Nonspacing Mark:] Remove; NFC;');
|
||||||
|
if ($transliterator) {
|
||||||
|
$text = $transliterator->transliterate($text);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Fallback to iconv if intl is not available
|
||||||
|
$text = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $text);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace any remaining non-ASCII characters
|
||||||
|
$text = preg_replace('/[^\x20-\x7E]/', '', $text);
|
||||||
|
|
||||||
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
private function apply_retro_effects(&$image) {
|
private function apply_retro_effects(&$image) {
|
||||||
// Add noise
|
// Add noise
|
||||||
$this->add_noise($image, 20);
|
$this->add_noise($image, 20);
|
||||||
|
Loading…
Reference in New Issue
Block a user