processing可以保存指定区域的内容吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了processing可以保存指定区域的内容吗相关的知识,希望对你有一定的参考价值。

可以。笔者在学习processing的过程中,遇到一些基础常识问题,在此处记录,也方便初学者学习。1. [ 变量 ]
1.1. [ 变量类型 ]

boolean 布尔变量,储存true/false
int 整数 float 浮点数 double long 巨大的数
char 字符 string 字符串 用"" byte字节
color 颜色
1.2. [ processing中的系统变量 ]

width 窗口像素宽 height 窗口像素高 screen.width 整个屏幕的像素宽 screen.height 整个屏幕像素高
fullScreen() 全屏显示
frameRate 每秒运行的帧数 frameCount 运行的帧数
key 最近一次键盘敲击 keyCode 键盘敲击某键 keyPressed 键盘被敲击
mousePressed 鼠标被点击 mouseButton 鼠标某个键被点击 mouseReleased 释放鼠标
1.3. [变量数组 ]

数组
float[] myNumber = new float[10]; //变量类型[] 数组名称 = new 变量类型[数量] 先定义,然后向计算机申请空间
for (int i =0; i < myNumber.length; i++)
myNumber[i] = 1.5; //赋值


对象组
ArrayList<Ball> ballCollection = new ArrayList<Ball>();
ballCollection.add(new Ball(position, radius, col));
for (Ball draw : ballCollection)
draw.display();

1.4. [操作符 ]

[]数组下标 ()优先级 function()函数或方法
/除(整数除得到整数 %取余 .点运算符 <<位运算 >>位运算
2. [ 绘图 ]
line()线 rect()矩形 ellipse()椭圆 arc()圆弧 triangle()三角形 quad()四边形
bezier(x1, y1, cx1, cy1, cx2, cy2, x2, y2)贝茨曲线 c开头为控制点
自由图形 beginShape() vertex()控制点 bezierVertex()贝茨曲线控制点 endShape()
2.1. [ 颜色模式 ]

颜色模式可以通过colorMode() 改变。

colorMode(mode); //mode:RGB或者HSB
colorMode(mode, max); //常用范围为0.0~1.0,以max设置所有颜色组成
colorMode(mode, max1, max2, max3); //RGB,255,255,255; HSB,360,100,100;
colorMode(mode, max1, max2, max3, alpha) //alpha指透明度
RGB模式

Proccessing默认的颜色模式,通过红(R),绿(G),蓝(B)三个颜色通道相互叠加得到各种颜色。

格式为(R, G, B, alpha),alpha表示透明度,R/G/B取值范围为0-255。

HSB模式

通过H(hues)色相,S(saturation)饱和度,B(brightness)亮度表示颜色。

H:在0-360°的色轮中,色相根据位置确定,H的取值为0-360。

S:表示色彩的纯度,取值为0-100,100为最纯的颜色。

B:色彩的明亮度,取值为0-100,100为最亮的颜色。

2.2. [ 像素 ]

像素相关要用到两个函数:loadPixels()加载像素 与 updatePixels()更新像素点

与像素相关的函数
pixels[] //像素数组
copy() //复制像素
get() //读取像素颜色
set() //设置像素点颜色
示例
color red = color(255, 0, 0);
loadPixels(); //加载像素
for (int i = 0; i < (width*height/2)-width/2; i++)
pixels[i] = red;

updatePixels(); //更新像素点
2.3. [ 绘画属性 ]

background(color)设定画布底色 fill(color)填色 noFill()不填色
stroke(color)线条颜色 noStroke()无线条 strokeWeight(thickness)边框粗细
strokeCap(mode)线条端点形式 ROUND 圆形 SQUARE 方形 PROJECT 方形延申
strokeJoin(mode)线条折角形式 MITER 尖角 BEVEL 斜角 ROUND 圆角
smooth()平滑效果 noSmooth()关闭平滑绘画模式
2.4.[ 运动 ]

translate() 更改坐标原点位置 rotate() 绕原点旋转 scale()缩放
pushMatrix()把原点数据和旋转数据放入矩阵堆栈中 popMatrix()释放堆栈

3. [ 图像 ]
Processing支持的图片格式有GIF/JPG/TGA/PNG

3.1. [ 导入图像]

PImage cat;
cat = loadImage("cat.jpg");
image(img, 0, 0); //长宽不变 插入点(0, 0)
image(img, 0, 0, width, height); //长宽压缩为窗口大小 插入点(0, 0)
img.resize(width, height); //将图形调整为窗口大小
3.2. [ 导出图像 ]

导出单张图片,背景不透明 save("###.png");

if(mousePressed)saveFrame(); //如果按下鼠标,存储
保存单帧图片,点击后存储;

boolean flag;

if(flag)
save("alp2.jpg");
flag = false;


void keyPressed()
flag = true;

导出连续多张图片,背景透明

PGraphics pg; //PGraphics对象背景透明
int index = 0; //图片下标
pg = createGraphics(1920, 1080, JAVA2D); //后台画布
pg.save("D:/p5/" + index + ".png"); //文件储存地点和文件名
导出gif图

//使用GifAnimation库来实现(需要加入)
import gifAnimation.*; //导入库
GifMaker gif;

void setup()
//插入初始化程序
setup_();


void draw()
//插入draw代码
draw_();


void setup_()
gif = new GifMaker(this, "my.gif");
gif.setRepeat(0); //Gif重复播放的次数,0为循环播放
gif.setTransparent(0,0,0); // 颜色参数为三个0,表示黑色 = 透明色
gif.setDelay(40); //帧与帧之间的延迟时间(毫秒),帧率则为 25(1000/40)。


void draw_()
if (frameCount % 1 == 0) //每间隔多少帧,写入一次(相当于改变播放速率)
gif.addFrame(); //将当前帧写入gif内


void mousePressed()
gif.finish(); //导出Gif

导出pdf文件

import processing.pdf.*; //导入processing的PDF库
size(640, 640, PDF, "text.pdf"); //在程序所在文件夹生成一个pdf文件

4. [ 文字 ]
4.1. [ 使用字体 ]

//菜单栏选择 "工具 - 创建字体 - 选择字体和大小后复制Filename一栏"
PFont f; //PFont类型的变量

f = loadFont("ACaslonPro-Bold-48.vlw"); //使用loadFont()载入字体到变量f中
f = createFont("ACaslonPro", 48, true);//使用createFont()载入字体,直接调用电脑中的字体,可任意缩放大小

textFont(f, 48); //为下方的文本指定字体
textSize(36); //设置字体大小
fill(255); //设置文本颜色
text("新年快乐", 10, 10); //显示文本,坐标位置
4.2. [ 字符串 ]

String c = ("给大家拜年了!!"); //注意上引号和下引号
text(c, 10, 10, 400, 200); //显示文本,坐标位置, 文本框大小
5. [ 音频 ]
音频一般需要导入Minim音频库。通过建立Minim对象,载入音频文件或者建立声音输入与输出。首先我们需要在“速写本 - 引用库文件 - 添加库文件”中搜索Minim点击Install。

音频一般用到以下的代码。

import ddf.minim.*;
AudioPlayer player; //建立音频播放器
Minim minim; //定义音频对象

void setup()
minim = new Minim(this);
player = minim.loadFile("music.mp3", 1024); //调取音频文件,指定缓存的采样频率为1024
player.play(); //播放文件


void draw()


//需要注意的是,在退出程序前,必须关闭Minim获得的所有I/O类,然后关闭Minim范本。
void stop()
player.close(); //关闭播放器
minim.stop(); //停止音频
super.stop();


player.left.size(); //左声道缓存长度
player.left.get(i); //左声道响度
6. [ 相机]
camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ)
eyeX, eyeY, eyeZ 设置眼睛的位置,可以通过更改这个位置进行3D物体的观察
centerX, centerY, centerZ 画布的中心位置
upX, upY, upZ 旋转方向,1为正,0为不动,-1为反方向

向量计算

add() //向量加法
sub() //向量减法
mult() //乘以标量以延申向量
div() //除以标量以缩短向量
mag() //计算向量的长度
setMag() //设置向量长度
normalize() //向量单位化,使其长度为1
limit() //限制向量长度
heading2D() //计算向量方向,用角度表示
rotate() //旋转一个二维向量
lerp() //线性插值到另一个向量
dist() //计算两个向量的欧几里得距离
angleBetween() //计算两个向量的夹角
dot() //计算两个向量的点乘 返回数取整 round()四舍五入
参考技术A 可以。笔者在学习processing的过程中,遇到一些基础常识问题,在此处记录,也方便初学者学习。1. [ 变量 ]
1.1. [ 变量类型 ]
boolean 布尔变量,储存true/false
int 整数 float 浮点数 double long 巨大的数
char 字符 string 字符串 用"" byte字节
color 颜色
1.2. [ processing中的系统变量 ]
width 窗口像素宽 height 窗口像素高 screen.width 整个屏幕的像素宽 screen.height 整个屏幕像素高
fullScreen() 全屏显示
frameRate 每秒运行的帧数 frameCount 运行的帧数
key 最近一次键盘敲击 keyCode 键盘敲击某键 keyPressed 键盘被敲击
mousePressed 鼠标被点击 mouseButton 鼠标某个键被点击 mouseReleased 释放鼠标
1.3. [变量数组 ]
数组
float[] myNumber = new float[10]; //变量类型[] 数组名称 = new 变量类型[数量] 先定义,然后向计算机申请空间
for (int i =0; i < myNumber.length; i++)
myNumber[i] = 1.5; //赋值

对象组
ArrayList<Ball> ballCollection = new ArrayList<Ball>();
ballCollection.add(new Ball(position, radius, col));
for (Ball draw : ballCollection)
draw.display();

1.4. [操作符 ]
[]数组下标 ()优先级 function()函数或方法
/除(整数除得到整数 %取余 .点运算符 <<位运算 >>位运算
2. [ 绘图 ]
line()线 rect()矩形 ellipse()椭圆 arc()圆弧 triangle()三角形 quad()四边形
bezier(x1, y1, cx1, cy1, cx2, cy2, x2, y2)贝茨曲线 c开头为控制点
自由图形 beginShape() vertex()控制点 bezierVertex()贝茨曲线控制点 endShape()
2.1. [ 颜色模式 ]
颜色模式可以通过colorMode() 改变。
colorMode(mode); //mode:RGB或者HSB
colorMode(mode, max); //常用范围为0.0~1.0,以max设置所有颜色组成
colorMode(mode, max1, max2, max3); //RGB,255,255,255; HSB,360,100,100;
colorMode(mode, max1, max2, max3, alpha) //alpha指透明度
RGB模式
Proccessing默认的颜色模式,通过红(R),绿(G),蓝(B)三个颜色通道相互叠加得到各种颜色。
格式为(R, G, B, alpha),alpha表示透明度,R/G/B取值范围为0-255。
HSB模式
通过H(hues)色相,S(saturation)饱和度,B(brightness)亮度表示颜色。
H:在0-360°的色轮中,色相根据位置确定,H的取值为0-360。
S:表示色彩的纯度,取值为0-100,100为最纯的颜色。
B:色彩的明亮度,取值为0-100,100为最亮的颜色。
2.2. [ 像素 ]
像素相关要用到两个函数:loadPixels()加载像素 与 updatePixels()更新像素点
与像素相关的函数
pixels[] //像素数组
copy() //复制像素
get() //读取像素颜色
set() //设置像素点颜色
示例
color red = color(255, 0, 0);
loadPixels(); //加载像素
for (int i = 0; i < (width*height/2)-width/2; i++)
pixels[i] = red;

updatePixels(); //更新像素点
2.3. [ 绘画属性 ]
background(color)设定画布底色 fill(color)填色 noFill()不填色
stroke(color)线条颜色 noStroke()无线条 strokeWeight(thickness)边框粗细
strokeCap(mode)线条端点形式 ROUND 圆形 SQUARE 方形 PROJECT 方形延申
strokeJoin(mode)线条折角形式 MITER 尖角 BEVEL 斜角 ROUND 圆角
smooth()平滑效果 noSmooth()关闭平滑绘画模式
2.4.[ 运动 ]
translate() 更改坐标原点位置 rotate() 绕原点旋转 scale()缩放
pushMatrix()把原点数据和旋转数据放入矩阵堆栈中 popMatrix()释放堆栈
3. [ 图像 ]
Processing支持的图片格式有GIF/JPG/TGA/PNG
3.1. [ 导入图像]
PImage cat;
cat = loadImage("cat.jpg");
image(img, 0, 0); //长宽不变 插入点(0, 0)
image(img, 0, 0, width, height); //长宽压缩为窗口大小 插入点(0, 0)
img.resize(width, height); //将图形调整为窗口大小
3.2. [ 导出图像 ]
导出单张图片,背景不透明 save("###.png");
if(mousePressed)saveFrame(); //如果按下鼠标,存储
保存单帧图片,点击后存储;
boolean flag;
if(flag)
save("alp2.jpg");
flag = false;

void keyPressed()
flag = true;

导出连续多张图片,背景透明
PGraphics pg; //PGraphics对象背景透明
int index = 0; //图片下标
pg = createGraphics(1920, 1080, JAVA2D); //后台画布
pg.save("D:/p5/" + index + ".png"); //文件储存地点和文件名
导出gif图
//使用GifAnimation库来实现(需要加入)
import gifAnimation.*; //导入库
GifMaker gif;
void setup()
//插入初始化程序
setup_();

void draw()
//插入draw代码
draw_();

void setup_()
gif = new GifMaker(this, "my.gif");
gif.setRepeat(0); //Gif重复播放的次数,0为循环播放
gif.setTransparent(0,0,0); // 颜色参数为三个0,表示黑色 = 透明色
gif.setDelay(40); //帧与帧之间的延迟时间(毫秒),帧率则为 25(1000/40)。

void draw_()
if (frameCount % 1 == 0) //每间隔多少帧,写入一次(相当于改变播放速率)
gif.addFrame(); //将当前帧写入gif内


void mousePressed()
gif.finish(); //导出Gif

导出pdf文件
import processing.pdf.*; //导入processing的PDF库
size(640, 640, PDF, "text.pdf"); //在程序所在文件夹生成一个pdf文件
4. [ 文字 ]
4.1. [ 使用字体 ]
//菜单栏选择 "工具 - 创建字体 - 选择字体和大小后复制Filename一栏"
PFont f; //PFont类型的变量
f = loadFont("ACaslonPro-Bold-48.vlw"); //使用loadFont()载入字体到变量f中
f = createFont("ACaslonPro", 48, true);//使用createFont()载入字体,直接调用电脑中的字体,可任意缩放大小
textFont(f, 48); //为下方的文本指定字体
textSize(36); //设置字体大小
fill(255); //设置文本颜色
text("新年快乐", 10, 10); //显示文本,坐标位置
4.2. [ 字符串 ]
String c = ("给大家拜年了!!"); //注意上引号和下引号
text(c, 10, 10, 400, 200); //显示文本,坐标位置, 文本框大小
5. [ 音频 ]
音频一般需要导入Minim音频库。通过建立Minim对象,载入音频文件或者建立声音输入与输出。首先我们需要在“速写本 - 引用库文件 - 添加库文件”中搜索Minim点击Install。
音频一般用到以下的代码。
import ddf.minim.*;
AudioPlayer player; //建立音频播放器
Minim minim; //定义音频对象
void setup()
minim = new Minim(this);
player = minim.loadFile("music.mp3", 1024); //调取音频文件,指定缓存的采样频率为1024
player.play(); //播放文件

void draw()

//需要注意的是,在退出程序前,必须关闭Minim获得的所有I/O类,然后关闭Minim范本。
void stop()
player.close(); //关闭播放器
minim.stop(); //停止音频
super.stop();

player.left.size(); //左声道缓存长度
player.left.get(i); //左声道响度
6. [ 相机]
camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ)
eyeX, eyeY, eyeZ 设置眼睛的位置,可以通过更改这个位置进行3D物体的观察
centerX, centerY, centerZ 画布的中心位置
upX, upY, upZ 旋转方向,1为正,0为不动,-1为反方向
向量计算
add() //向量加法
sub() //向量减法
mult() //乘以标量以延申向量
div() //除以标量以缩短向量
mag() //计算向量的长度
setMag() //设置向量长度
normalize() //向量单位化,使其长度为1
limit() //限制向量长度
heading2D() //计算向量方向,用角度表示
rotate() //旋转一个二维向量
lerp() //线性插值到另一个向量
dist() //计算两个向量的欧几里得距离
angleBetween() //计算两个向量的夹角
dot() //计算两个向量的点乘 返回数取整 round()四舍五入
参考技术B 可以。笔者在学习processing的过程中,遇到一些基础常识问题,在此处记录,也方便初学者学习。1. [ 变量 ]
1.1. [ 变量类型 ]
boolean 布尔变量,储存true/false
int 整数 float 浮点数 double long 巨大的数
char 字符 string 字符串 用"" byte字节
color 颜色
1.2. [ processing中的系统变量 ]
width 窗口像素宽 height 窗口像素高 screen.width 整个屏幕的像素宽 screen.height 整个屏幕像素高
fullScreen() 全屏显示
frameRate 每秒运行的帧数 frameCount 运行的帧数
key 最近一次键盘敲击 keyCode 键盘敲击某键 keyPressed 键盘被敲击
mousePressed 鼠标被点击 mouseButton 鼠标某个键被点击 mouseReleased 释放鼠标
1.3. [变量数组 ]
数组
float[] myNumber = new float[10]; //变量类型[] 数组名称 = new 变量类型[数量] 先定义,然后向计算机申请空间
for (int i =0; i < myNumber.length; i++)
myNumber[i] = 1.5; //赋值

我可以扩展主要内容区域的网格吗?

我正在尝试通过添加可折叠的导航栏使我的仪表板应用程序更具动态性。导航器应仅调整图标大小,主区域应扩展。但是从现在开始我有点坚持如何扩展它。

该项目基于PHP Laravel框架5.6。

我尝试过使用网格列的不同设置。

<div class="container-fluid" id="wrapper">
    <div class="row">
        @include("test.components.sidenav")
        <main class="col-xs-12 col-sm-8 col-lg-9 col-xl-10 pt-3 pl-4 ml-auto">
            <div class="container-fluid" id="expandable">
                <nav class="sidebar col-xs-12 col-sm-4 col-lg-3 col-xl-2" id="collapseId">
                    <h1 class="site-title">
                        <a href="{{ route('home') }}">
                            <em class="fab fa-accessible-icon"></em>
                            <span>Ready4It</span>
                        </a>
                    </h1>
                    <a href="#menu-toggle" class="btn btn-default" id="menu-toggle">
                        <em class="fas fa-bars"></em>
                    </a>
                    <ul class="nav nav-pills flex-column sidebar-nav">
                        <li class="nav-item">
                            <a class="nav-link active" href="">
                                <em class="fas fa-home"></em>
                                <span>Dashboard</span>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="">
                                <em class="fas fas fa-ticket-alt nav-bar-icon"></em>
                                <span>Ticket overzicht</span>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="">
                                <em class="fas fa-chart-line"></em>
                                <span>Statistieken</span>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="">
                                <em class="fas fa-envelope"></em>
                                <span>Mail monitoring</span>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="">
                                <em class="fas fa-clock"></em>
                                <span>Uren invoer</span>
                            </a>
                        </li>
                    </ul>
                    <a href="#" class="logout-button" id="logout-button">
                        <em class="fa fa-power-off"></em>
                        <span>Logout</span>
                    </a>
                </nav>
                <section class="row">
                    <div class="col-sm-12">
                        <div class="row">
                            @yield("content")
                        </div>
                    </div>
                </section>
            </div>
        </main>
    </div>
</div>

<script>
    /* This script is for the mobile navbar collapse */
    $("#menu-toggle").click(function (e) {
        e.preventDefault();
        $("#wrapper").toggleClass("toggled");
    });

    $("#menu-collapse").click(function (e) {
        e.preventDefault();
        $("#collapseId").toggleClass("icons-only");
        $("#logout-button").toggleClass("logout-button").toggleClass("logout-button-collapsed")
    })
</script>

导航器应仅调整图标大小,主区域应扩展。

答案

试试这个,在类图标中添加固定宽度 - 如果需要,还可以调整变换转换

.icons-only {
 width: some-width;
}

并且还要确保为主要部分添加了与margin-left相同的宽度(仅当将仅图标类添加到nav时才应用此选项)

以上是关于processing可以保存指定区域的内容吗的主要内容,如果未能解决你的问题,请参考以下文章

vba怎么复制指定内容到指定工作表?

java 获取process返回值的指定部分

vba修改INI中指定的项

mac如何截屏并保存

pro文件常用内容

[软件工具][windows]OCR指定区域图片自动识别内容重命名软件使用教程