Java指定屏幕区域截屏

Java模拟按键精灵(四)-屏幕搜索 功能介绍   本篇是介绍屏幕搜索功能,屏幕搜索主要是指在屏幕指定区域内,搜索特定的图形或特定的颜色。开始的时候走了弯路,我是直接遍历屏幕像素点,然后取色比较的,这样做效率特别低,10X10的像素区域,就要1秒多,不得已还用了多线程。后来找到一篇文章,先截屏然后在生成的图片对象中查找,速度快很多 。文章内容参考“java中的图像匹配实现_java实现图像模版匹配(蜗牛学院)” 代码    屏幕区域截图工具类 package com.analog.tools; import java.awt.AWTExc 阅读详情

截取指定屏幕区域的屏幕,并保存到指定文件夹中,Demo如下:

import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.imageio.ImageIO;

public class Screenshot {

	/**
	 * 截图
	 * 
	 * @param filePath
	 *            截图保存文件夹路径
	 * @param fileName
	 *            截图文件名称
	 * @throws Exception
	 */
	public static void captureScreen(String filePath, String fileName) throws Exception {
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		Rectangle screenRectangle = new Rectangle(screenSize);
		Robot robot = new Robot();
		BufferedImage image = robot.createScreenCapture(screenRectangle);
		// 截图保存的路径
		File screenFile = new File(filePath + fileName);
		// 如果文件夹路径不存在,则创建
		if (!screenFile.getParentFile().exists()) {
			screenFile.getParentFile().mkdirs();
		}

		// 指定屏幕区域,参数为截图左上角坐标(100,100)+右下角坐标(500,500)
		BufferedImage subimage = image.getSubimage(100, 100, 500, 500);
		ImageIO.write(subimage, "png", screenFile);

	}

	public static void main(String[] args) throws Exception {
		Date now = new Date();
		SimpleDateFormat sdfPath = new SimpleDateFormat("yyyyMMdd");
		SimpleDateFormat sdfName = new SimpleDateFormat("yyyyMMddHHmmss");
		String path = sdfPath.format(now);
		String name = sdfName.format(now);
		captureScreen("D:" + File.separator + path + File.separator, name + ".png");
	}
}

根据指定窗口句柄进行截屏 1、获取窗口句柄     见http://blog.youkuaiyun.com/dazhong159/article/details/7903382 2、截屏函数代码(包含截屏类和调用示例)     Screen.h头文件如下: #ifndef __CSCREEN_H__ #define __CSCREEN_H__ #include class CScreen { public: ch 阅读详情

相关推荐

在Android中实现区域截屏

在Android中实现区域截屏,可以使用以下步骤和代码示例。这个示例如何捕获指定区域的屏幕截图,并将其保存为图片文件。获取屏幕截图:使用View的draw方法将屏幕内容绘制到Bitmap中。裁剪指定区域:从完整的Bitmap中裁剪出指定区域。保存图片:将裁剪后的Bitmap保存到文件中。

a518618718的博客 836

java截取指定区域屏幕,Java 屏幕截取,抓取屏幕截图

Java 屏幕截取,抓取屏幕截图发布时间:2018-04-25作者:spider阅读(1519)importjava.awt.Desktop;importjava.awt.Dimension;importjava.awt.Rectangle;importjava.awt.Robot;importjava.awt.Toolkit;importjava.awt.image.Buffered...

weixin_30545587的博客 822

javaFx实现截屏——鼠标拖动选择截屏区域进行截屏,任意界面按下快捷键截屏,截屏完成后显示截屏图片

javaFx实现截屏:鼠标拖动选择截屏区域进行截屏,全局快捷键截屏,即可以在任何界面按下快捷键进行截屏,截屏完成后显示截屏图片。

c1007857613的专栏 3729

Java实现屏幕截图及剪裁

new Rectangle(int x, int y, int width, int height),四个参数分别是矩形左上角x坐标,矩形左上角y坐标,矩形宽度,矩形高度。捕捉屏幕截图后,也许,我们需要对其剪裁。这里只展示其屏幕截图。如果剪裁后需要保存剪裁得到的文件,使用ImageIO.write,参考上面把截图保持为文件的代码。* 指定屏幕区域截图,返回截图的BufferedImage对象。* @param height - 剪裁出的图片的高度。* @param width - 剪裁出的图片的宽度。

tbapi_ok的博客 593

Java截屏工具制作教程

图形用户界面(GUI)是用户与计算机程序交互的一种方式,它使用图形符号、按钮、菜单、键盘快捷键和其他视觉元素来实现操作,以替代传统的命令行界面。Java作为一种广泛使用的编程语言,提供了强大的GUI开发工具,使得开发者能够构建出美观且功能强大的桌面应用程序。对GUI的基础知识有充分理解,是制作用户友好界面的关键步骤。Robot事件适配器是一个提供默认空实现的类,它为一些常见的事件监听接口提供基础实现。开发者可以通过继承事件适配器并重写相关的方法来简化代码。// 使用当前类作为监听器。

weixin_29607511的博客 839

Java截屏与图像处理全攻略

本文还有配套的精品资源,点击获取 简介:Java编程语言在实现截屏功能和图像处理操作方面提供了全面的支持。通过利用Java AWT和Swing库,开发者可以轻松创建图形用户界面、截取屏幕图像,并执行包括调整大小、裁剪、旋转在内的多种图像处理技术。本文将详细介绍如何使用Java进行截屏和图像处理,包括代码示例和实用技巧。 1. Java截屏实现方法 在现代的计...

weixin_32311823的博客 2060

Java swing实现框选截图小工具java截图框选仿wx

想做个Java的局域网相互传东西和聊天,正巧遇到想要截图在网上找来找去没有找到看起来合适的,最想要的还是有点阴影凸显一下截图区域,然后在截图区写字画图形。 思路是这样:1屏幕截图放到背景面板,2在用一个面板盖住它,3在盖住的面板上用Graphics画出框选区域,4在框选的区域在进行图图画画,5然后再把款框选的区域再截图一次保存下来。 因为网上找不到类似的然后我就分享出来,方便有想法的小伙伴不用重复造轮子了。对于java,屏幕截图可以主要通过一个robot来实现。使用robot类需要导入java.awt包,操

QinHuanJiDeWoMa的博客 885

Java实现屏幕截取程序(区域内截屏)更新

博文链接:https://daimojingdeyu.iteye.com/blog/235539

java实现截屏和录屏功能

截屏和录屏讲解使用java实现截屏和录屏功能一、截屏二、录屏结论 使用java实现截屏和录屏功能 在计算机编程中,截屏和录屏功能是一种非常有用的功能,它可以让我们更好地了解和控制系统的状态。在本文中,我们将介绍如何使用java实现截屏和录屏功能。 一、截屏 截屏是指从显示器上捕捉屏幕的当前内容,并将其保存为图像文件的过程。在java中,可以使用Robot类来实现截屏功能。Robot类提供了createScreenCapture()方法,可以捕获屏幕上的内容,并将其保存为BufferedImage对象。 //

m0_73589720的博客 4317

光学设计必知:Ansys Zemax中6种系统孔径类型的适用场景全解析

本文深入解析Ansys Zemax中6种系统孔径类型的适用场景,包括入瞳直径、像方空间F/#、物方空间NA等,帮助光学设计师精准控制光线选择和成像质量。通过实际案例和代码示例,详细讲解各孔径类型的计算原理、参数设置及在显微系统、激光扩束等场景中的优化策略,提升复杂光学系统设计效率。

weixin_29266007的博客 551

国内外主流嵌入式GUI汇总

随着MCU资源增多,处理能力也强了,同时市场需求也增多了GUI功能也越来越丰富了,很多的嵌入式图形库都可以做出绚丽的界面。

m0_69914734的博客 3289

基于java的QQ截图工具的设计与实现

基于java的QQ截屏工具的设计和实现能够实现对屏幕的随机截取,复制,保存以及添加文字等操作,便于用户对数据的处理。 该软件的功能: (1)随机获取屏幕指定区域; (2)编辑(添加文字)截图; (3)存储截图; 源码及资料: 链接:https://pan.baidu.com/s/17ZVoYGzAq9fleTf6cHV0ow 提取码:ig98 ...

Eureka926的博客 127

智能循迹小车之PID控制算法

从光电传感器获取信号确认小车和黑线的偏离角度,通过PID算法算出左右车轮速度,控制小车前进或者后退。

yzj199921的博客 4639

java开发QQ屏幕截图工具BS毕业设计(毕业论文+答辩PPT+源代码+数据库+部署视频)

java开发QQ屏幕截图工具BS(毕业论文+答辩PPT+源代码+数据库+部署视频)

qq_630137186的博客 263

AI Agent开发大全第一课-AI是什么以及如何使用AI

近年来,人工智能的迅猛发展引发了广泛的关注,尤其是“大模型”这一概念越来越深入人心。大模型,顾名思义,通常指的是那些拥有大量参数、能够处理复杂任务的机器学习模型。与传统小模型相比,大模型在数据处理、信息理解和生成等方面表现更加出色。为了理解为什么现在的AI被称为大模型,我们需要深入探讨几个关键因素。立角色是指在提示词中清晰地界定交互双方的身份。明确用户希望模型扮演的角色,可以帮助模型更准确地理解上下文和用户需求。

打造全国最全的AI Agent开发知识领域的博客 1406

【保姆级教程】YOLOv8_Pose多目标+关键点检测:训练自己的数据集

【保姆级教程】YOLOv8_Pose多目标+关键点检测:训练自己的数据集

m0_51579041的博客 1万+

java计算机毕设课设—截屏工具(附源码、文章、相关截图、部署视频)

java计算机毕设课设—截屏工具(附源码、文章、相关截图、部署视频)基于java的截屏工具的设计和实现能够实现对屏幕的随机截取,复制,保存以及添加文字等操作,便于用户对数据的处理。一、项目简介Java截图工具是一个基于Java开发的实用软件,旨在提高用户处理屏幕信息的效率和便捷性。该工具通过自动化的方式取代了传统的纯手动截图和信息记录方法,允许用户快速捕捉屏幕指定区域的图像,并进行编辑和存储。

隐私计算市场洞察 1081

57、振荡扫描仪的挠性枢轴:原理、设计与材料选择

本文深入探讨了振荡扫描仪中挠性枢轴的工作原理、设计方法与材料选择。挠性枢轴因其无润滑、高精度、低周期性误差和潜在无限寿命等优势,广泛应用于光学、太空、医学和半导体等领域。文章分析了其在小角度下的优异性能与无法连续旋转等局限性,提供了关键设计公式,并对比了多种挠性材料的性能指标。同时,结合不同应用场景提出设计优化策略,并展望了微型化、智能化和高性能材料等未来发展趋势,为工程实践提供了系统的设计流程与选型建议。

numpy6sculptor的博客 95

截屏的java实现(GuiCamera.java)

import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; /*****

439

YOLOv11 改进 - Mamba | 集成Mamba-YOLO(AAAI 2025),Mamba-YOLOv11-B 替换骨干,破解全局依赖建模难题,实现高效实时检测

本文介绍Mamba YOLO,为图片物体识别提供了“又快又准”的新方案。传统CNN架构运行快但难以捕捉远距离关联物体,Transformer架构精度高但计算量呈平方级增长,而SSM虽计算量为线性级且能抓全局关联,但用于图片识别时细节定位不准。为此,Mamba YOLO做了三项关键优化:引入ODMamba骨干网络,解决自注意力的二次复杂度问题,且无需预训练;设计ODMamba宏观结构确定最佳阶段比例和缩放大小;采用多分支结构的RG块建模通道维度,解决SSM在序列建模中的不足。在COCO数据集测试中,其小版本推

魔改工程师的博客 857

【27】软考软件设计师——数据流图(DFD)补全题满分精讲|下午15分大题深度拆解

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第27篇,深度精讲**下午案例题第1道必考大题:数据流图(DFD)补全**,该题单题分值高达**12 ~ 15分**,是整张试卷最稳的保底得分大题。我结合多年备考复盘与真题阅卷规则,超详细拆解DFD四大核心元素标准定义、机考绘图规范、三层分层逻辑、**父图子图平衡刚性扣分规则**,升级强化版「DFD满分补全三步法」;复刻历年高频真题完整流程,拆解缺失数据流定位、实体/存储辨析、平衡改错、文字需求对照全流程,配套**阅卷满分答题话术、机考避坑细则

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 589

Android实现可选区域全局屏幕截屏和应用内截屏

这个交互效果不太理想,选择区域是一次性的,不显示选择区域,也不能对现象区域进行拖拽或者放大缩小。从这可以看出默认执行的截屏类型是TAKE_SCREENSHOT_FULLSCREEN,即全屏的,若想进行区域截屏,将类型改成TAKE_SCREENSHOT_SELECTED_REGION即可。但这个方法是无法对非本应用画面进行截图的,比如当前Activity是一个半屏弹窗,那么弹窗之外的区域是无法截取到的。优化:自定义显示一个区域框,可以对区域框进行拖拽、放大、缩小,点击确认按钮后进行选定区域的截屏。

HuanWen_Cheng的博客 2206

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java实现屏幕截取程序(区域内截屏)

JDK 1.3中增加了一个Robot的类,内置了一个屏幕截取的方法[createScreenCapture],所以说对整个屏幕取图是一件很简单的事情。这里讨论一下如何实现对于屏幕某一鼠标拖选区域的屏幕截取。 网上java截屏的代码,都是调用Robot类的方法实现整个屏幕截取的,半天也没有找到关于鼠标拖动时进行区域截屏的代码。想了一下,还是可以实现的。问题的关键是在没有Java程序显示的情况...

daimojingdeyu 1268

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java:实现屏幕抓图程序(附带源码)

Java:实现屏幕抓图程序(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 2259

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java 多显示器截屏

java 多显示器截屏

weixin_39827145的博客 657
上一篇: Linux搭建SVN服务器 - 支持多个项目
下一篇: Eclipse安装Spring Tool Suite(STS)
hellboy0621
博客等级 码龄9年 61粉丝 147原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值