/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2024-2025. All rights reserved.
 */
package magic.utils

import std.fs.{File, OpenOption}
import std.io.SeekPosition
import encoding.base64.toBase64String

public func imageFileToBase64(path: String, head!: Bool = true): String {
    let file = File(path, OpenOption.Open(true, false))
    let bytesBuf = readToEnd(file)
    file.close()
    let image = toBase64String(bytesBuf)
    if(head){
        let idx = path.lastIndexOf(".")
        let fileType:String = match (idx){
            case Some(val) => path[val+1..].toAsciiLower()
            case None => "jpeg"
        }
        return "data:image/${fileType};base64,${image}"
    }
    return image
}