JAVA intToBytes and bytesToInt

数字存入到字节数组中,和从字节数组中还原数字

//注意高低位问题
public static int bytesToInt(byte[] src, int offset) {
        int value;
        value = (int) ((src[offset] & 0xFF) | ((src[offset + 1] & 0xFF) << 8) | ((src[offset + 2] & 0xFF) << 16) | ((src[offset + 3] & 0xFF) << 24));
        return value;
    }

public static byte[] toByteArray(int i) {
        byte[] bt = new byte[4];
        bt[0] = (byte) (0xff & i);
        bt[1] = (byte) ((0xff00 & i) >> 8);
        bt[2] = (byte) ((0xff0000 & i) >> 16);
        bt[3] = (byte) ((0xff000000 & i) >> 24);
        return bt;
    }
实现类Img,参考形式如下: Class Img { Img(){} void readImg(string file);//从参数file指定的路径读取图像文件,有合理的函数体即可 void writeImg(string file);//将图像数据写出到参数file指定的路径,有合理的函数体即可 enum IMG_STORE_TYPE{GRAY,GRAY_A,RGB,RGB_A;};//图像的存储形式有四种: 灰度通道,灰度通道+透明度通道,RGB通道,RGB通道+透明度通道 IMG_STORE_TYPE store_type;//根据readImg的信息设定具体的store_type。 short[] pixel_data;存储的像素颜色数据 Img UnaryOperation(ShortUnaryOperator unary_op); Img BinaryOperation(Img img, ShortBinaryOperator binary_op); } 相同维度大小的图像与图像之间存在算术运算关系:是指对两幅或两幅以上的输入图像中对应像素值作加、减、乘或除等运算 后,将运算结果作为输出图像相应像素的灰度值。这种运算的特点在于:其―,输出图像像素的值仅取决于两幅或两幅以上的输入图像的对应像素值,算术运算结果和参与运算像素的邻域内像素的灰度值无关;其二,算术运算不会改变像素的空间位置。实现方法UnaryOperation和BinaryOperation,根据上述图像运算关系的定义,对pixel_data中的数据进行遍历运算,参数img是另一个参与运算的相同大小的图像,binary_op是具体运算的形式,对UnaryOperation实现反色操作(使用颜色的最大值255减去当前像素值得到新的像素值),对BinaryOperation实现加减两种运算形式(减法结果小于0的情况,截断到0)。
05-27
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值