javafloat压缩(java deflate压缩)

本篇文章给大家谈谈javafloat压缩,以及java deflate压缩对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、java图片压缩比为12、JAVA Float类中有那几个主要方法?各有什么作用?3、java中的Float和float4、求助java压缩图片存储大小的方法5、JAVA中关于float类型的疑问。6、java中的float类型?

java图片压缩比为1

java压缩图片,按照比例进行压缩

public static void main(String[] args) {

try {

//图片所在路径

BufferedImage templateImage = ImageIO.read(new File(“C:\\Users\\晏丁丁\\Pictures\\图片1.png”));

//原始图片的长度和宽度

int height = templateImage.getHeight();

int width = templateImage.getWidth();

//通过比例压缩

float scale = 0.5f;

//通过固定长度压缩

/*int doWithHeight = 100;

int dowithWidth = 300;*/

//压缩之后的长度和宽度

int doWithHeight = (int) (scale * height);

int dowithWidth = (int) (scale * width);

BufferedImage finalImage = new BufferedImage(dowithWidth, doWithHeight, BufferedImage.TYPE_INT_RGB);

finalImage.getGraphics().drawImage(templateImage.getScaledInstance(dowithWidth, doWithHeight, java.awt.Image.SCALE_SMOOTH), 0, 0, null);

//图片输出路径,以及图片名

FileOutputStream fileOutputStream = new FileOutputStream(“D:/image/tupian.jpg”);

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fileOutputStream);

encoder.encode(finalImage);

fileOutputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

文章知

javafloat压缩(java deflate压缩)

JAVA Float类中有那几个主要方法?各有什么作用?

byte    byteValue() 

          将此 Float 值以 byte 形式返回(强制转换为 

byte)。    

static int    compare(float f1, 

float f2) 

          比较两个指定的 float 值。    

 int    compareTo(Float anotherFloat) 

          比较两个 Float 对象所表示的数值。    

 double    doubleValue() 

          返回此 Float 对象的 double 值。    

 boolean    equals(Object obj) 

          将此对象与指定对象进行比较。    

static int    floatToIntBits(float value) 

          根据 IEEE 754 浮点“单一格式”位布局,返回指定浮点值的表示形式。    

static int    floatToRawIntBits(float value) 

          根据 IEEE 754 浮点“单一格式”位布局,返回指定浮点值的表示形式,并保留非数字 (NaN) 值。    

 float    floatValue() 

          返回此 Float 对象的 float 值。    

 int    hashCode() 

          返回此 Float 对象的哈希码。    

static float    intBitsToFloat(int bits) 

          返回对应于给定位表示形式的 float 值。    

 int    intValue() 

          将此 Float 值以 int 形式返回(强制转换为 

int 类型)。    

 boolean    isInfinite() 

          如果此 Float 值的大小是无穷大,则返回 true,否则返回 

false。    

static boolean    isInfinite(float v) 

          如果指定数的数值是无穷大,则返回 true,否则返回 

false。    

 boolean    isNaN() 

          如果此 Float 值是一个非数字 (NaN) 值,则返回 true,否则返回 

false。    

static boolean    isNaN(float v) 

          如果指定的数是一个非数字 (NaN) 值,则返回 true,否则返回 

false。    

 long    longValue() 

          将此 Float 值以 long 形式返回(强制转换为 

long 类型)。    

static float    parseFloat(String s) 

          返回一个新的 float 值,该值被初始化为用指定 String 表示的值,这与 

Float 类的 valueOf 方法一样。    

 short    shortValue() 

          将此 Float 值以 short 形式返回(强制转换为 

short)。    

static String    toHexString(float f) 

          返回 float 参数的十六进制字符串表示形式。    

 String    toString() 

          返回此 Float 对象的字符串表示形式。    

static String    toString(float f) 

          返回 float 参数的字符串表示形式。    

static Float    valueOf(float f) 

          返回表示指定的 float 值的 Float 实例。    

static Float    valueOf(String s) 

          返回保存用参数字符串 s 表示的 float 值的 

Float 对象。

更加详细的方法API里面有,自己去找就行了

java中的Float和float

float是原始数据类型,赋值方法

float b = 111.111f; //数字后面的f代表float类型,否则会报错

而Float,是对float的封装,是一个类,所以赋值时需要赋给一个对象

比如:

Float a = new Float(111.111);

但是上面这种方法效率并不高,一般采用下面的方法更好:

Float a = Float.valueOf(111.111f);

求助java压缩图片存储大小的方法

 可以使用Draw这个类,通过改变像素来改变存储大小,实例如下:

public static boolean compressPic(String srcFilePath, String descFilePath) throws IOException {

        File file = null;

        BufferedImage src = null;

        FileOutputStream out = null;

        ImageWriter imgWrier;

        ImageWriteParam imgWriteParams;

        // 指定写图片的方式为 jpg

        imgWrier = ImageIO.getImageWritersByFormatName(“jpg”).next();

        imgWriteParams = new javax.imageio.plugins.jpeg.JPEGImageWriteParam(

                null);

        // 要使用压缩,必须指定压缩方式为MODE_EXPLICIT

        imgWriteParams.setCompressionMode(imgWriteParams.MODE_EXPLICIT);

        // 这里指定压缩的程度,参数qality是取值0~1范围内,

        imgWriteParams.setCompressionQuality((float) 1);

        imgWriteParams.setProgressiveMode(imgWriteParams.MODE_DISABLED);

        ColorModel colorModel =ImageIO.read(new File(srcFilePath)).getColorModel();// ColorModel.getRGBdefault();

        // 指定压缩时使用的色彩模式

//        imgWriteParams.setDestinationType(new javax.imageio.ImageTypeSpecifier(

//                colorModel, colorModel.createCompatibleSampleModel(16, 16)));

        imgWriteParams.setDestinationType(new javax.imageio.ImageTypeSpecifier(

                colorModel, colorModel.createCompatibleSampleModel(16, 16)));

        try {

            if (isBlank(srcFilePath)) {

                return false;

            } else {

                file = new File(srcFilePath);System.out.println(file.length());

                src = ImageIO.read(file);

                out = new FileOutputStream(descFilePath);

                imgWrier.reset();

                // 必须先指定 out值,才能调用write方法, ImageOutputStream可以通过任何

                // OutputStream构造

                imgWrier.setOutput(ImageIO.createImageOutputStream(out));

                // 调用write方法,就可以向输入流写图片

                imgWrier.write(null, new IIOImage(src, null, null),

                        imgWriteParams);

                out.flush();

                out.close();

            }

        } catch (Exception e) {

            e.printStackTrace();

            return false;

        }

        return true;

    }

public static boolean isBlank(String string) {

        if (string == null || string.length() == 0 || string.trim().equals(“”)) {

            return true;

        }

        return false;

    }

JAVA中关于float类型的疑问。

首先存放都是二进制,第一步你已经做好了,然后位数的23位是从小数点右边开始算起。不满23位补零,举个例子

0.2356的内存存储格式

将0.2356化为二进制后大约是0.00111100010100000100100000。

将小数点右移三位得到1.11100010100000100100000。

从小数点右边数出二十三位有效数字,即11100010100000100100000放入第22到第0位。

由于0.2356是正的,所以在第31位放入“0”。

由于我们把小数点右移了,所以在第30位放入“0”。

因为小数点被右移了3位,所以将3化为二进制,在左边补“0”补足七位,得到0000011,各位取反,得到1111100,放入第29到第23位。

最后表示0.2356为:0 0 1111100 11100010100000100100000

java中的float类型?

java中的float类型

.浮点类型

1) 与整数类型一样,同样有固定的表述范围和字段长度,且不受具体的操作系统的影响,保证了Java的跨平台性

2) Java语言中,浮点类型有两种表现形式,分别是:

  a. 十进制数形式, 如3.14

  b. 科学计数法,如,3.14e2, 3.14e-2, -3.14E2

3) Java语言中,默认的浮点数类型是double,声明float类型的时候,后面必须添加字母f或者F,如3.14F,3.14f

4) Java中两种浮点类型的表述范围:

关于javafloat压缩和java deflate压缩的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月29日 15:46:25
下一篇 2024年3月29日 15:51:34

相关推荐

  • 包含java虚拟机64位下载的词条

    哪里可以下载windows7家庭版32位 今天小编给大家带来win732位家庭精简版下载地址推荐,都是免激活的,直接下载安装即可。 (32位)windows7官方原版iso文件下载地址三:雨林木风YLMFWin732位原版旗舰版iso镜像下载可启动映像文件,可以用刻录软件刻录,也可用虚拟光驱载入使用,增强了实用性。 下载地址风林火山flhsghostwin7…

    2024年5月18日
    3500
  • java取modelandview的简单介绍

    Java中ModelAndView是做什么的? java modelandview是什么,让我们一起了解一下?modelandview是当控制器处理完请求时,会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherServlet。因此,经常需要在控制器中构造ModelAndView对象。 ModelAndView是S…

    2024年5月18日
    4000
  • java=变量,java变量的基本属性

    Java语法介绍(三):变量 1、为了在Java中存储一个数据,必须将它容纳在一个变量之中。而数据类型决定了一个变量可以赋给什么值以及对变量进行什么样的操作。 2、在JAVA中我们通过三个元素来描述变量:变量类型,变量名以及变量值。变量,就是可以改变的量。例子:int 表示能存储整数类型的数据类型。 int a;表示你定义了一个存储整数的变量。 3、变量是程…

    2024年5月18日
    4500
  • java现在主要用于什么地方,java一般用来干嘛

    java是干什么的 我们常常说的Java,首先它是一种计算机编程语言,程序员用它来和计算机交流,把要求和设想用Java语言表达出来,这个过程就是我们所说的使用Java编程,所以我们说Java是一种计算机编程语言。 java是开发网站、写游戏、开发软件的。开发网站:Java在开发高访问、高并发、集群化的大型网站方面很有优势,因此许多网站都是用Java写的。Ja…

    2024年5月18日
    4400
  • 包含1009.说反话(20)java的词条

    如何用JAVA撷取一段文字的前20个作为返回结果? java.lang.string.splitsplit 方法将一个字符串分割为子字符串,然后将结果作为字符串数组返回。stringObj.split([separator,[limit]])参数stringObj 必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。 读取wor…

    2024年5月18日
    3600
  • java类名.类名.属性,java类名是啥

    定义一个Java类,类名Cricle,圆属性为半径,已知半径为5,编程实现出该圆… 1、printf(圆的周长=%lf\n圆的面积=%lf\n,l,s);} 或者你可以直接写 includestdio.h void main(){ printf(圆的周长=3415926\n圆的面积=7539815f\n);} C语言是一门通用计算机编程语言,应用…

    2024年5月18日
    3400
  • java多任务,java 多任务

    线程在java编程中的作用 线程同步的真实意思,其实是“排队”:几个线程之间要排队,一个一个对共享资源进行操作,而不是同时进行操作。因此,关于线程同步,需要牢牢记住的第一点是:线程同步就是线程排队。同步就是排队。线程同步的目的就是避免线程“同步”执行。 在Java语言中,不仅语言本身有多线程的支持,可以方便地生成多线程的程序,而且运行环境也利用多线程的应用程…

    2024年5月18日
    3400
  • javasocket心跳实现,java实现心跳机制

    java是否可以实现心跳的程序 1、Timer貌似可以实现,给你个demo看看是不是你想要的,具体的实现就要你自己去查阅api或者去百度博客什么的了。。 2、\x0d\x0a心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。 3、心跳的也有现成的,不过依赖别的类。大概贴一下,就是这么个…

    2024年5月18日
    5200
  • javaerm是什么意思,java ee什么意思

    企业风险管理(ERM)又是什么啊? ERM(Enterprise Rights Management,企业权限管理)也被称为EDRM(Enterprise Digital Rights Management,企业数字权限管理),主要解决数字化资产(电子数据)的有效管理与控制问题。 企业风险管理(ERM):应用于整个企业的一项流程,旨在:识别潜在的, 一旦发生…

    2024年5月18日
    2900
  • java开发笔试题目,java面试sql笔试题目

    jJava方向综合笔试题1 1、正确答案:A 解析:原型不同于最终系统,它只实现所选择的部分功能,仅是为了试验或是演示而用,部分功能需求可以忽略或者模拟实现,因此适用于需求不确定性高的系统。正确答案:A 解析:本题考查变更控制的相关知识。 2、(1)满足交换律。将运算表中的运算结果作为一个矩阵,可以知道该矩阵是一个对称矩阵,所以满足交换律。或者对每一对元素都…

    2024年5月18日
    3600

发表回复

登录后才能评论



关注微信