Java如何设置jpg质量

2023-11-27

只是想编辑一些代码,以便输出 jpg 质量不是默认的低质量设置

try
        {
            ImageIO.write(var6, "jpg", var7);
        }

.....目前正在使用。

我看过一些其他设置质量的 Java 示例,但对 Java 不太熟悉,我无法理解如何插入内容并修改一些示例,这些示例是我在使用 Java 设置图像质量时看到的。

ImageWriteParam iwparam = new JPEGImageWriteParam(Locale.getDefault());
    iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
    iwparam.setCompressionQuality(quality);
    writer.write(null, new IIOImage(image, null, null), iwparam);

这是我正在尝试工作的代码......

public static String func_74292_a(File par0File, String par1Str, int par2, int par3)
{
    File var4 = new File(par0File, "screenshots");
    var4.mkdir();
    int var5 = par2 * par3;

    if (field_74293_b == null || field_74293_b.capacity() < var5)
    {
        field_74293_b = BufferUtils.createIntBuffer(var5);
        field_74294_c = new int[var5];
    }

    GL11.glPixelStorei(GL11.GL_PACK_ALIGNMENT, 1);
    GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1);
    field_74293_b.clear();
    GL11.glReadPixels(0, 0, par2, par3, GL12.GL_BGRA, GL12.GL_UNSIGNED_INT_8_8_8_8_REV, field_74293_b);
    field_74293_b.get(field_74294_c);
    func_74289_a(field_74294_c, par2, par3);
    BufferedImage var6 = new BufferedImage(par2, par3, 1);
    var6.setRGB(0, 0, par2, par3, field_74294_c, 0, par2);

    if (par1Str == null)
    {
        var7 = func_74290_a(var4);
    }
    else
    {
        var7 = new File(var4, par1Str);
    }

    try
    {
        ImageIO.write(var6, "jpg", var7);
    }
    catch (IOException var8)
    {
        ;
    }

    Thread var7x = new Thread(new ScreenShotHelper$1());
    var7x.start();
    return "\u00a7aUploading Screenshot....";
}

private static File func_74290_a(File par0File)
{
    String var1 = dateFormat.format(new Date()).toString();
    int var2 = 1;

    while (true)
    {
        File var3 = new File(par0File, var1 + (var2 == 1 ? "" : "_" + var2) + ".jpg");

        if (!var3.exists())
        {
            return var3;
        }

        ++var2;
    }
}

最后用这段代码做到了......

try
{

    ImageOutputStream  ios =  ImageIO.createImageOutputStream(var7);
    Iterator<ImageWriter> iter = ImageIO.getImageWritersByFormatName("jpeg");
    ImageWriter writer = iter.next();
    ImageWriteParam iwp = writer.getDefaultWriteParam();
    iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
    iwp.setCompressionQuality(0.85f);
    writer.setOutput(ios);
    writer.write(null, new IIOImage(var6,null,null),iwp);
    writer.dispose();

    //ImageIO.write(var6, "jpg", var7);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java如何设置jpg质量 的相关文章

  • 为什么Map有loadFactor而List没有呢?

    当用 Java 创建 Map 或 List 时 它们的默认初始容量都是 10 它们的容量会随着新元素的增加而增长 但是 List 仅在添加第 11 个元素时才会增长 而 Map 在添加第 8 个元素时已经增长 发生这种情况是因为 Map 有
  • SwipeListView 使用 NullPointerException

    我正在尝试使用SwipeListView 但是当我触摸应用程序上的某个项目时 它会崩溃 日志信息就在那里 05 26 21 52 26 545 E AndroidRuntime 19862 java lang NullPointerExce
  • Java从受限层调用方法

    我什至不确定这是否可行 但我想询问社区的总体意见 我必须解决以下问题 我的项目有 2 层 一个核心层和一个业务层 该核心层提供业务层 这时候Business类就可以导入Core类 为所欲为了 核心类只能导入核心类并使用其方法 禁止访问业务类
  • Java Web 应用程序的关闭钩子

    我需要在 java web 应用程序停止或 tomcat 停止时保存一些数据 如何才能做到这一点 编辑 如果我使用 jvm shutdown hook 有什么缺点吗 使用一个实现的类ServletContextListener https
  • Java:什么是“for (;;)”[重复]

    这个问题在这里已经有答案了 有人可以帮我解释一下这条指令吗 为了 我遇到过几种这样的标记 比如在 facebook 的 ajax 代码和 Java 的并发内容中 无限循环 for 循环的三个部分中的每一个部分 for x y z 是可选的
  • Selenium2 中的 FirefoxDriver 是否有经过验证的 mouseOver 解决方法?

    我在用着硒Java 2 0b3 我有这个代码 WebDriver driver new InternetExplorerDriver Selenium seleniumDriver new WebDriverBackedSelenium d
  • 如何在 Spring Batch 中从 ItemReader 访问作业参数?

    这是我的一部分job xml
  • 为什么 Stream 没有 toList() 方法?

    使用 Java 8 流时 获取一个列表 从中创建一个流 执行业务并将其转换回来是很常见的 就像是 Stream of 2 1 2 5 filter n gt n gt 0 map n gt n n collect Collectors to
  • 在 Java 中将 HTML 转换为纯文本

    我需要将 HTML 转换为纯文本 我对格式的唯一要求是在纯文本中保留新行 新行不仅应在以下情况下显示 br 但其他标签 例如 tr tr 也通向一条新线 用于测试的示例 HTML 页面是 http www article kth se li
  • 使用文件服务 URL 从 blobstore 删除文件

    在我的应用程序 GAE 上的 GWT 中 我们将存储在 blobstore 上的服务 URL 存储在数据库中 当用户选择这些文件之一并单击 删除 时 我们需要从 blobstore 中删除该文件 这是我们的代码 但它根本没有删除文件 pub
  • 如何在 Spring Boot 中使用 CommonsMultipartResolver

    我尝试在 Boot 中使用 CommonsMultipartResolver 将我的旧应用程序 WAR 转换为 Boot 现在它得到以下代码 Configuration public class TestConfig Bean public
  • 如何在 ADF Oracle 11gR1 中的对话框窗口中的弹出窗口中刷新表

    我正在研究显示一个带有搜索表的弹出窗口的要求 当用户单击弹出窗口中的搜索按钮 提供输入文本框 时 需要使用新的数据集刷新搜索表 我创建了一个populateSearchTable 通过填充数组中的值来生成表的方法deviceListArra
  • 寻找关于 JIDE 的反馈 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Spring Actuator 可以与非 Web Spring Boot 应用程序一起使用吗?

    我有一个 Spring Boot 应用程序 它侦听来自 IBM MQ 输入队列的消息 对消息进行一些处理 然后将消息放入输出队列 像这样的应用程序可以利用Spring执行器来监视应用程序 例如心跳检查 吗 从执行器文档来看 它似乎只能与 S
  • 匿名类是内部类的子集吗?

    这听起来可能是一个愚蠢的问题 但所有匿名类都必须在现有类中定义和实例化 因此 它们必须同时是内部类 匿名类是内部类的类型 看http docs oracle com javase tutorial java javaOO innerclas
  • Eclipse 创建 Java 虚拟机失败

    我正在使用 eclipse 开发 android 应用程序 它总是进展顺利 但今天它出现了问题 当我尝试打开 Eclipse 时 它 向我显示此消息 Failed to create the java virtual machine Err
  • 优化xstream的加载速度

    当我尝试从 XML 文件执行加载时 我感觉 xstream 加载速度达不到我的要求 为了 一个有 10k 条目的 数据库 需要几分钟 以下是我用来序列化的整个数据结构 列表的大小 符号和代码 将为 大约 10k 条目 有什么方法我可以尝试
  • 如何在 Java 中使用 Bing 搜索 api

    我需要从 Bing 中提取搜索结果 有没有可用的Java代码来实现这一点 此 MSDN 论坛主题 http social msdn microsoft com Forums en US DataMarket thread f93738b4
  • 使用 Apache CXF 2.4 JAX-RS 和 Spring Security 3.2 获取用户名

    我在 JAX RS 资源中获取用户名SecurityContextHolder这有效 Path myresource public class MyResoure Get public String getUserName return S
  • 使用lib添加自定义字体android

    我正在使用 android 自定义字体 lib Calligraphyhttps github com chrisjenx Calligraphy https github com chrisjenx Calligraphy 但对textv

随机推荐