base64转图片

    /**
     * base64转图片
     * @param base64Code base64码
     */ 

    public static void convertBase64ToImage(String base64Code){
        BufferedImage image;
        byte[] imageByte;
        try {
            imageByte = DatatypeConverter.parseBase64Binary(base64Code);
            ByteArrayInputStream bis = new ByteArrayInputStream(imageByte);
            image = ImageIO.read(new ByteArrayInputStream(imageByte));
            bis.close();
            String date = "MMdd-HH:mm:ss";
            SimpleDateFormat time = new SimpleDateFormat(date);
            Date data = new Date();
            String timeName=time.format(data);
            String filename = savePath + timeName + ".jpg";
            File outputFile = new File(filename);
            ImageIO.write(image, "jpg", outputFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    //解决如下: 设置超时时间
    public static void guge(String url){
        //这里设置下载的驱动路径,Windows对应chromedriver.exe Linux对应chromedriver,具体路径看你把驱动放在哪
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\86186\\Desktop\\phantomjs-2.1.1-windows\\bin\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        //ssl证书支持
        options.setCapability("acceptSslCerts", true);
        //截屏支持
        options.setCapability("takesScreenshot", true);
        //css搜索支持
        options.setCapability("cssSelectorsEnabled", true);
        options.setHeadless(true);
        ChromeDriver driver = new ChromeDriver(options);
        //设置超时,避免有些内容加载过慢导致截不到图
        driver.manage().timeouts().pageLoadTimeout(1, TimeUnit.MINUTES);
        driver.manage().timeouts().implicitlyWait(1, TimeUnit.MINUTES);
        driver.manage().timeouts().setScriptTimeout(1, TimeUnit.MINUTES);
        try {
            //设置需要访问的地址
            driver.get(url);
            //获取高度和宽度一定要在设置URL之后,不然会导致获取不到页面真实的宽高;
            Long width = (Long)driver.executeScript("return document.documentElement.scrollWidth");
            Long height =(Long) driver.executeScript("return document.documentElement.scrollHeight");
            System.out.println("高度:"+height);
            //设置窗口宽高,设置后才能截全
            driver.manage().window().setSize(new Dimension(width.intValue(), height.intValue()));
            //设置截图文件保存的路径
            String screenshotPath = "C:\\Users\\86186\\Desktop\\phantomjs-2.1.1-windows\\bin\\img\\imgGG.png";
            File srcFile = driver.getScreenshotAs(OutputType.FILE);
            FileUtils.copyFile(srcFile, new File(screenshotPath));
        }catch (Exception e){
            throw new RuntimeException("截图失败",e);
        }finally {
            driver.quit();
        }
    }
    public static String mainS() throws InterruptedException {

        runCmd("taskKill /f /im chromedriver.exe");
        runCmd("taskKill /f /im chrome.exe");
        // 设置 chromedriver 的路径
        System.setProperty("webdriver.chrome.driver", "D:\\script\\java\\WebApiDDT\\DriverExe\\chromedriver.exe");
        //设置临时环境变量,指定chrome使用静默模式,减少日志输出量
        System.setProperty("webdriver.chrome.silentOutput", "true");
        //下载浏览器驱动
        //WebDriverManager.chromedriver().setup();


        /**
         * ChromeOption对象可以为chrome启动时定制许多参数,需要用到更多参数可以查阅ChromeOptions相关说明。
         */
        // chrome浏览器参数对象
        ChromeOptions option = new ChromeOptions();
        //设置自动化启动时,不显示正在受到自动化软件控制的提示栏
        option.setExperimentalOption("excludeSwitches", new String[] {"enable-automation","load-extension"});
        //针对反爬机制,把浏览器不标记为webdriver启动的浏览器。
        option.addArguments("--disable-blink-features=AutomationControlled");
        option.addArguments("no-sandbox");
        option.addArguments("disable-dev-shm-usage");
        option.addArguments("--remote-allow-origins=*");
        /**
        //ssl证书支持
        option.setCapability("acceptSslCerts", true);
        //截屏支持
        option.setCapability("takesScreenshot", true);
        //css搜索支持
        option.setCapability("cssSelectorsEnabled", true);
        option.setHeadless(true);
        */

         /**
         * 加载chrome用户文件,这里使用的是浏览器默认存储的用户文件目录。 在chrome浏览器里通过地址栏里输入chrome://version
         * 进行访问,能够看到个人资料路径 注意个人资料路径中复制时,只需要到User Data这一级,不需要Default这一级
         * 使用时会和手动打开的浏览器冲突,注意不要同时打开。
         */
//		option.addArguments("--user-data-dir=C:\\Users\\pc\\AppData\\Local\\Google\\Chrome\\User Data");
        // 也可以将浏览器路径下的User Data目录复制一份放到其它位置进行引用,这样不会和手动打开的浏览器产生冲突。
        option.addArguments("--user-data-dir=D:\\chromeData\\copyData");
        // 最大化浏览器窗口
        option.addArguments("--start-maximized");
        ChromeDriver chromeDriver = new ChromeDriver(option);
        chromeDriver.get("http://10.248.50.224/absweb/ui/#/login1");
        Thread.sleep(5000);
        WebElement eGeg=chromeDriver.findElement(By.xpath("//p[text()=\"图形验证码\"]/following-sibling::div/img"));
        //log.info(imgSrc);
        /**
        System.out.println((imgSrc));
        String ver=PostPic(imgSrc);
        log.info(ver);
        **/
        String src=eGeg.getAttribute("src");
        chromeDriver.close();
        return src;
    }

    public static void main(String[] args) throws InterruptedException {
        String src=mainS();
        log.info(src);
    }

你可能感兴趣的:(java,android,开发语言)