图片转base64 并根据格式加前缀

图片转base64 并根据格式加前缀

在这里插入图片描述

摘要

这是一个使用Java编写的示例代码,用于将图片文件转换为Base64编码并添加特定格式的前缀。代码中的 imageToBase64WithPrefix 方法接受图片路径、图片格式和前缀作为参数,然后读取图片文件的字节数据,将其转换为Base64编码,并将前缀添加到编码后的字符串中。主方法演示了如何调用这个方法并输出得到的带有前缀的Base64编码。请替换示例代码中的路径、格式和前缀以适应您的实际需求。

博主 默语带您 Go to New World.
个人主页—— 默语 的博客👦🏻
《java 面试题大全》
🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭
《MYSQL从入门到精通》数据库是开发者必会基础之一~
🪁 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!💻⌨

以下是用Java代码将图片转换为Base64编码并添加特定格式前缀的示例:

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;

public class ImageToBase64 {

    // 将图片转换为Base64编码并添加前缀
    public static String imageToBase64WithPrefix(String imagePath, String imageFormat, String prefix) {
        try {
            Path path = Paths.get(imagePath);
            byte[] imageBytes = Files.readAllBytes(path);
            String base64Data = Base64.getEncoder().encodeToString(imageBytes);
            String formattedBase64 = prefix + imageFormat + ";base64," + base64Data;
            return formattedBase64;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void main(String[] args) {
        String imagePath = "path/to/your/image.png";  // 替换为实际图片路径
        String imageFormat = "png";  // 替换为实际图片格式
        String prefix = "data:image/";  // 替换为实际前缀格式

        String base64Image = imageToBase64WithPrefix(imagePath, imageFormat, prefix);
        System.out.println(base64Image);
    }
}

这个示例代码演示了如何使用Java将图片文件转换为Base64编码,并在编码后的字符串前添加特定格式前缀。您可以将实际的图片路径、图片格式和前缀替换到代码中,然后运行代码以获得带有前缀的Base64编码。


代码

package com.example.democrud.democurd.uuid;

import org.apache.commons.lang3.StringUtils;
import sun.misc.BASE64Encoder;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;


public class base {


    public static void main(String[] args) {

        String le = "http://192.168.0.117:18080/file/tmp/116972201185280.png";
        String les = "G:/VueD/client/public/file/tmp/116972201185280.png";
        String ss = getImgFileToBase64(les);
         getswitch(les,ss);
    }



    /** * imgFile 图片本地存储路径 */
    public static String getImgFileToBase64(String imgFile) {


    //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
    InputStream inputStream = null;
    byte[] buffer = null;
    //读取图片字节数组
        try {
        inputStream = new FileInputStream(imgFile);
        int count = 0;
        while (count == 0) {
            count = inputStream.available();
        }
        buffer = new byte[count];
        inputStream.read(buffer);
    } catch (
    IOException e) {
        e.printStackTrace();
    } finally {
        if (inputStream != null) {
            try {
                // 关闭inputStream流
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    // 对字节数组Base64编码
        return new BASE64Encoder().encode(buffer);
}



    /** *filename文件名  base64 */
    public static String getswitch(String filename,String base64) {

        String str = filename.substring(filename.lastIndexOf(".") + 1);

        System.out.println(str);

        //png
        String pngPrefix = "data:image/png;base64,";
        //jpg
        String jpegPrefix = "data:image/jpeg;base64,";
        //docx
        String docxPrefix = "data:application/vnd.openxmlformats-officedocument.wordprocessingml.document ;base64,";
        //doc
        String docPrefix = "data:application/msword;base64,";
        //pdf
        String pdfPrefix = "data:application/pdf;base64,";

        String filebase64 = null;

        if (StringUtils.isNotBlank(str)) {


            switch (str) {
                case "png":
                    filebase64 = pngPrefix.concat(base64);
                    break;
                case "jpg":
                    filebase64 = jpegPrefix.concat(base64);
                    break;
                case "docx":
                    filebase64 = docxPrefix.concat(base64);
                    break;
                case "doc":
                    filebase64 = docPrefix.concat(base64);
                    break;
                case "pdf":
                    filebase64 = pdfPrefix.concat(base64);
                    break;
                default:
                    break;
            }

            System.out.println(filebase64);
        }

        return  filebase64;
    }

}

在这里插入图片描述
POM有需要的可以看下;

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example.DemoCrud</groupId>
    <artifactId>democurd</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>democurd</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- mybatis整合Springboot -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        
        <!-- StringUtils整合Springboot -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.7</version>
        </dependency>


        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-words</artifactId>
            <version>16.8.0</version>
        </dependency>

        <!--        <dependency>-->
            <!--           maven 添加json-->
<!--            <groupId>net.sf.json-lib</groupId>-->
<!--            <artifactId>json-lib</artifactId>-->
<!--            <version>2.4</version>-->
<!--        </dependency>-->
        <!--jquery-webjar-->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.3.0</version>
        </dependency>
        <!--bootstrap-webjar-->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>4.0.0</version>
        </dependency>
        <!--配置文件注入时使用后会有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.2</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.0.1</version>
    </dependency>
    <!--添加poi-ooxml依赖包-->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.0.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-scratchpad</artifactId>
        <version>4.0.1</version>
    </dependency>

    <dependency>
        <groupId>fr.opensagres.xdocreport</groupId>
        <artifactId>xdocreport</artifactId>
        <version>1.0.6</version>
    </dependency>

    <dependency>
        <groupId>com.itextpdf.tool</groupId>
        <artifactId>xmlworker</artifactId>
        <version>5.5.11</version>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itext-asian</artifactId>
        <version>5.2.0</version>
    </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.1.0</version>
        </dependency>


        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-local</artifactId>
            <version>1.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-transformer-msoffice-word</artifactId>
            <version>1.0.3</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
        <dependency><!--导入分页插件-->
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
<!--            <version>1.2.3</version>-->
            <version>1.2.3</version>
        </dependency>

        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.1.1</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.1.40</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

运行结果太多了 就截图吧;

如对本文内容有任何疑问、建议或意见,请联系作者,作者将尽力回复并改进📓;(联系微信:Solitudemind )

<think>好的,我需要帮助用户解决在WPF项目发布时如何正确引用Prism.Regions的问题。首先,我得回顾一下Prism框架的结构和各组件的作用。根据引用[1],Prism.Core是核心,与平台无关,而Prism.Wpf包含Region、Module等WPF特定功能,Prism.Unity则是IOC容器的实现。Prism.Regions是Prism.Wpf的一部分,用于区域管理,所以在部署时需要确保相关DLL被正确包含。 接下来,用户提到发布时的问题,可能涉及到依赖项是否被打包。通常,使用NuGet安装Prism后,依赖会自动处理,但发布时需确认。根据引用[2],项目需要正确安装Prism库,修改App.xaml和MainWindow.xaml。如果Prism.Regions被正确安装,发布时应自动包含。不过,用户可能在发布设置中遗漏了某些步骤,比如未将依赖项复制到输出目录。 然后,我需要考虑常见的部署问题。例如,项目文件中的引用是否正确,或者是否使用了ClickOnce或MSIX等发布工具,这些工具可能需要显式包含所有依赖。根据经验,确保所有Prism相关的NuGet包已安装,且在发布配置中设置为“复制本地”为True,这样相关的DLL会被包含在输出目录中。 另外,引用[3]提到Prism支持设计模式如MVVM和依赖注入,区域管理属于这些模式的一部分。如果区域功能在开发时正常工作,但发布后失效,可能是部署时缺少了Prism.Wpf或Prism.Regions的DLL。需要检查生成目录是否包含Prism.Wpf.dll、Prism.Regions.dll等文件。 最后,总结步骤:验证NuGet包安装,检查项目引用,确保发布设置正确,手动检查输出目录中的DLL,考虑依赖的框架版本是否与目标环境兼容。可能还需要清理和重新生成解决方案,以确保所有文件都是最新的。</think>在WPF项目发布时正确引用Prism.Regions,需遵循以下步骤: ### 1. **验证NuGet包安装** - 确保项目中已安装`Prism.Wpf`和`Prism.Unity`(或`Prism.DryIoc`)的NuGet包。Prism.Regions功能包含在`Prism.Wpf`中[^1][^3]。 - 打开项目文件`.csproj`,检查是否包含如下引用: ```xml <PackageReference Include="Prism.Wpf" Version="x.x.x" /> <PackageReference Include="Prism.Unity" Version="x.x.x" /> ``` ### 2. **配置发布设置** - 在Visual Studio中,右键项目选择**属性** → **发布**: - 若使用ClickOnce部署,勾选**将应用程序文件包含到列表中**,确认所有Prism相关DLL(如`Prism.Wpf.dll`、`Prism.Regions.dll`)标记为**包含**。 - 若使用独立发布(如文件夹发布),确保生成配置中**复制本地**属性设为`True`(默认已自动处理NuGet依赖)。 ### 3. **检查输出目录** - 发布后检查`bin\Release\netx.x\publish`文件夹,确认以下文件存在: - `Prism.Wpf.dll` - `Prism.Regions.dll` - `Prism.Unity.dll`(或其他IOC容器DLL) - `Unity.Abstractions.dll`(若使用Prism.Unity) ### 4. **处理区域注册代码** - 确保在`App.xaml.cs`的`RegisterTypes`方法中正确注册区域导航服务: ```csharp protected override void RegisterTypes(IContainerRegistry containerRegistry) { // 区域导航服务自动由Prism.Wpf提供[^3] // 注册模块或视图时关联区域 containerRegistry.RegisterForNavigation<MainView>("MainRegion"); } ``` ### 5. **依赖框架版本兼容性** - 若目标机器未安装.NET运行时,需在发布设置中选择**独立部署**,勾选对应框架版本(如.NET 6.0)。Prism.Wpf依赖的框架版本需与项目一致。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默语∿

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值