Added image/video control and property manipulation

This commit is contained in:
UnlegitDqrk
2026-02-28 16:56:30 +01:00
parent aa629b9237
commit a84c626416
21 changed files with 1708 additions and 60 deletions

View File

@@ -0,0 +1,34 @@
package org.openautonomousconnection.luascript.fx;
import java.util.Locale;
/**
* Shared extension helper for media sources.
*/
public final class MediaExtensions {
/**
* Extracts a lower-case extension without dot, or empty string if none.
*
* @param pathOrName path or file name
* @return extension without dot, lower-case, or empty string
*/
public static String extensionOf(String pathOrName) {
if (pathOrName == null) return "";
String s = pathOrName.trim();
if (s.isEmpty()) return "";
int q = s.indexOf('?');
if (q >= 0) s = s.substring(0, q);
int h = s.indexOf('#');
if (h >= 0) s = s.substring(0, h);
int slash = Math.max(s.lastIndexOf('/'), s.lastIndexOf('\\'));
String name = (slash >= 0) ? s.substring(slash + 1) : s;
int dot = name.lastIndexOf('.');
if (dot < 0 || dot == name.length() - 1) return "";
return name.substring(dot + 1).toLowerCase(Locale.ROOT);
}
}