迪士尼 乐拍通 获取中等清晰度照片免费获取

最近去淘宝上翻了一圈,也有很多人拿这个赚钱的。本文只是简单介绍 迪士尼简单 的一般清晰度 照片的获取。


迪士尼的这个乐拍通 如果大家愿意花钱,其实是可以拿到从相机的原图, 大概是4k的一张照片, 淘宝上很多都是用这个来拼单的。


第二种比较便宜的是利用了手机APP上的请求,使用过乐拍通APP的都知道。每张相片的详细都是模糊的,只有点击才能看到部分的图片。


这个模糊其实只是一个模糊的图层,后台的手机其实已经下载了这个相关的一般清晰度图片。大概1024X768左右。


但是我们想看到这个请求。具体是怎么样的。 


我们可以使用一些网络连接嗅探器来做到这一点  我们可以使用 Charles 这个工具来做


然后我们可以发现一个请求:


http://www.disneyphotopass.com.cn:4000/media/ba5a2d253f8e1ec796cfb66e817116a0a6b426aff62506fab  这样的类似请求


是一张   或者 其他的没啥意义的图片。。。。。但是他们的大小有点诡异,一个300X200的jpg图片就有100K


这个是不正常的。。说明这个图片里面有一些猫腻 




我们可以使用其他的一些文件比较工具来比较这个文件和正常的jpg文件有什么区别






其中的猫腻 ,大家已经发现了出来。。红色的部分是有问题的部分,是迪士尼服务器独有的请求。我们可以剔除这部分,就可以拿到真正的图片。


代码如下:


    private static void testImg(File resultF,String outputFile){

//
        FileInputStream fileInputStream = null;
        FileOutputStream fos = null;
        try {
            fileInputStream = new FileInputStream(resultF);
//
        byte[] temp = new byte[1024];
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        int length = 0;
        while ((length = fileInputStream.read(temp)) >= 0) {
            byteArrayOutputStream.write(temp, 0, length);
        }
        byte[] result = byteArrayOutputStream.toByteArray();
        StringBuilder stringBuilder = new StringBuilder();
        for (byte t : result) {
            String s = Integer.toHexString(t);
            if (s.length() >= 2) {
                stringBuilder.append(s.charAt(s.length() - 2));
            } else {
                stringBuilder.append('0');
            }
            stringBuilder.append(s.charAt(s.length() - 1));
        }
        String s = stringBuilder.toString();
        String ress = "ffd8ff" + s.substring(s.indexOf("e000104a4649460001010101"));
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(hexStr2Bytes(ress));
            fos = new FileOutputStream(outputFile);

        while ((length = byteArrayInputStream.read(temp)) >= 0) {
            fos.write(temp, 0, length);
        }
         fos.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(fos!=null){
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }
    }

    private static byte uniteBytes(String src0, String src1) {
        byte b0 = Byte.decode("0x" + src0).byteValue();
        b0 = (byte) (b0 << 4);
        byte b1 = Byte.decode("0x" + src1).byteValue();
        byte ret = (byte) (b0 | b1);
        return ret;
    }

    /**
     * bytes转换成十六进制字符串
     */
    public static byte[] hexStr2Bytes(String src) {
        int m = 0, n = 0;
        int l = src.length() / 2;
        System.out.println(l);
        byte[] ret = new byte[l];
        for (int i = 0; i < l; i++) {
            m = i * 2 + 1;
            n = m + 1;
            ret[i] = uniteBytes(src.substring(i * 2, m), src.substring(m, n));
        }
        return ret;
    }



如果大家有需求和问题的的话,也可以私信给我。 



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值