当前位置: 首页 > news >正文

完整的网站优化放啊微信朋友圈推广

完整的网站优化放啊,微信朋友圈推广,wordpress删除所有文章,滨海县城乡建设局网站项目开发步骤 1 界面开发 美颜相机界面构成: 标题 尺寸 关闭方式 位置 可视化 2 创建主函数调用界面方法 3 添加两个面板 一个是按钮面板一个是图片面板 用JPanel 4 添加按钮到按钮面吧【注意:此时要用初始化按钮面板的方法initBtnPanel 并且将按钮添…

项目开发步骤

1 界面开发 美颜相机界面构成: 标题 尺寸 关闭方式 位置 可视化

2 创建主函数调用界面方法

3 添加两个面板 一个是按钮面板一个是图片面板 用JPanel

4 添加按钮到按钮面吧【注意:此时要用初始化按钮面板的方法initBtnPanel 并且将按钮添加到按钮面板上面 要将按钮面板传到方法中】

    -  用一维字符串数组表示按钮 然后通过for循环遍历 将按钮文本添加到按钮上面 可以获得按钮的背景颜色 最后按钮一定要添加到按钮面板上

5 添加监听器 动作监听器和按钮监听器 在按钮动作监听器用 e.get~的方法获取文本信息  给按钮也添加监听器 在添加前先创建对象

6 按钮功能的实现 用if 和equals 

   -  打开功能的实现

     先获取图片的绝对路径 用loadImage方法 先读取文件后ImageIO.read(path)读取文件的像素点  定义一个二维数组来储存图片  后用for遍历图片的像素点 用image.getRGB(i,j) 将BufferedImage对象Image中指定位置(i,j)的像素颜色取出来储存到二维数组中  for循环结束后 可输出图片加载完成 

     用文件选择器打开文件 FileChosser  打开文件位置null 用if判断选择时点了确定按钮 后获取所选择的文件的绝对路径 然后对图像处理对象 调用加载图像的方法将  转为像素的二维数组

  -  原图功能的实现

     画图片drawImage  现将像素取出来 然后获取每个像素点的颜色 将颜色给画笔【画笔是从绘制面板传过来】 后绘制像素点

    在ImageProUI类中获取显示图片画板的画笔 然后imageLister对象中ImageUtils对象的画笔是面板的画笔【将面板的画笔赋给它】

    后在按钮功能实现的地方调用方法

package lfx250220;import javax.swing.*;
import java.awt.*;
import java.awt.image.ImageObserver;
import java.text.AttributedCharacterIterator;public class ImageProUI {//界面开发 先写一个个方法然后把界面创建出来//创建面板 JPanle//创建一个监听器ImageLister imageLister=new ImageLister();public void showUI(){JFrame jf= new JFrame();//界面:大小 位置 关闭方式 可视化 布局方式jf.setTitle("美颜相机");jf.setSize(900,900);jf.setLocationRelativeTo(null);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//JPanel类  面板 相当于一个容器JPanel btnPanel = new JPanel();JPanel imgPanel = new JPanel();//设置面板属性btnPanel.setBackground(Color.CYAN);imgPanel.setBackground(Color.BLUE);//设置宽高用到Dimension类 维度Dimension dimension = new Dimension(300,100);btnPanel.setPreferredSize(dimension);//初始化按钮面板 调用initBtnPanel这个方法initBtnPanel(btnPanel);//布局: 流式布局(JPanel 默认布局)  边框布局(窗体的默认布局)//将面板添加到窗体上  用BorderLayout布局//BorderLayout布局: 是JFrame 的默认布局管理器 将容器划分为五个区域//北(BorderLayout.NORTH) 南(BorderLayout.SOUTH) 东(BorderLayout.EAST) 西(BorderLayout.WEST) 中(BorderLayout.CENTER)jf.add(btnPanel,BorderLayout.NORTH);jf.add(imgPanel,BorderLayout.CENTER);//FlowLayout flowLayout = new FlowLayout();//BorderLayout borderLayout = new BorderLayout();//jf.setLayout(flowLayout);//jf.setLayout(borderLayout);jf.setVisible(true);//获取             显示图片的画板 的画笔Graphics gra=imgPanel.getGraphics();imageLister.imageUtils.gra=gra;//gra是imageLister对象中imageUtils对象中的画笔}//初始化按钮面板//按钮是要添加到按钮面板上 所以要把按钮面板传过来public void initBtnPanel(JPanel btnPanel){String[] btnTexts = {"打开","保存","原图","马赛克","灰度"};//遍历 将每个按钮写出来 然后设置颜色for (int i=0;i< btnTexts.length;i++){JButton btn=new JButton(btnTexts[i]);btn.setBackground(Color.ORANGE);btnPanel.add(btn);btn.addActionListener(imageLister);}String[] btnTexts2={"画笔","直线","矩形","填充","截图","马赛克画笔"};for (int i=0;i< btnTexts2.length;i++){JButton btn=new JButton(btnTexts2[i]);btn.setBackground(Color.GREEN);btnPanel.add(btn);btn.addActionListener(imageLister);}}public static void main(String[] args) {ImageProUI showui=new ImageProUI();showui.showUI();}
}
package lfx250220;import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;public class ImageLister implements MouseListener, ActionListener {//【注意:函数的调用需要用对象来实现】//图像处理器ImageUtils imageUtils=new ImageUtils();@Overridepublic void actionPerformed(ActionEvent e) {//按钮的动作监听器 获取按钮的文本String ac=e.getActionCommand();System.out.println("ac"+ac);//按钮功能的实现if (ac.equals("打开")){//打开图片 目的 获取一张照片的绝对路径//用文件选择器将图片打开//文件过滤器FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & PNG","jpg", "png");//文件选择器JFileChooser jfc = new JFileChooser();int state = jfc.showOpenDialog(null);//参数对他的作用是一个位置作用 写成空就是居中if (state==JFileChooser.APPROVE_OPTION){//选择时点了确定按钮//获取所              选择的文件的           绝对路径String path = jfc.getSelectedFile().getAbsolutePath();//图像处理对象  调用加载图片的方法  转为像素的二维数组imageUtils.loadImage(path);}} else if (ac.equals("保存")) {}else if (ac.equals("原图")) {imageUtils.drawImage();}else if (ac.equals("马赛克")) {}else if (ac.equals("灰度化")) {}}@Overridepublic void mouseClicked(MouseEvent e) {}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic void mouseExited(MouseEvent e) {}
}
package lfx250220;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;public class ImageUtils {//定义一个属性 储存图片的二维数组static int[][] imgArr;//宽度和高度int w;int h;Graphics gra = null;//从绘制面板上将画笔传过来//加载图片public static void loadImage(String path){File file = new File(path);//读取文件的内容//补充://BufferedImage 可理解为一个包含图像像素数据的缓冲区 不仅储存了图像的像素信息 还包含了图像的颜色模型 透明度等属性//也可以把他看成一个二维的像素数组 每个像素都有对应的颜色值//主要作用://图像读取与储存  处理图像文件一般把BufferedImage当做中间对象 在该项目代码就是这个作用//图像编辑与处理 BufferedImage提供丰富的方法来操作图像的像素 通过修改BufferedImage的像素值 可以是实现各种图像特效//图像显示  Java中 可以将BufferedImage对象绘制到Graohics上下文上 从而在窗口中显示图像//ImageIO.read(file)方法尝试从文件File中读取图像 是Java标准库中用于读取图像文件的静态方法try {BufferedImage image=ImageIO.read(file);//获取图片的宽度和高度int w=image.getWidth();int h= image.getHeight();//创建一个空的数组 储存图片的像素值imgArr = new int[w][h];//将图片的像素值复制到数组中for (int i=0;i<w;i++){for (int j=0;j<h;j++){imgArr[i][j]=image.getRGB(i,j);//将BufferedImage对象Image中指定位置(i,j)的像素颜色取出来 并储存在二维数组}}System.out.println("加载图片完成");} catch (IOException e) {throw new RuntimeException(e);}}//绘制图像的方法public void drawImage(){//先将像素取出来for (int i=0;i<w;i++){for (int j=0;j<h;j++){int pixNum = imgArr[i][j];Color color= new Color(pixNum);gra.setColor(color);gra.fillRect(i,j,1,1);//绘制像素点}}}}

补充内容:复盘遇到的问题以及文件选择器和获取图片路径的方法

 -  复盘遇到的问题

     - 1 用for循环遍历数组的时候 从i= 0 即数组的第一个数开始 并且 i = 数组的长度 这会引起索引越界的问题 
     -  2 把按钮添加到面板上用的方法是初始化按钮面板 initBtnPanel

  -  文件选择器

    - JFileChooser 的使用方法
          -  1创建JFileChooser 对象
          -  2显示文件选择器的对话框
          -  3 处理用户的选择结果  用if 
package lfx250223;import javax.swing.*;public class JFileChooserExample {public static void main(String[] args) {//使用步骤// 1 创建JFileChooser对象JFileChooser jFileChooser = new JFileChooser();// 2 显示文件选择器对话框 位置nullint state = jFileChooser.showOpenDialog(null);// 3 处理用户的选择结果if (state==JFileChooser.APPROVE_OPTION){//用户点击了 打开 按钮java.io.File selectedFile = jFileChooser.getSelectedFile();//getSelectedFile() 是JFileCHooser类的一个方法//作用是获取用户在文件选择对话框中选定的文件 该方法会返回一个java.io.File 类的对象 该对象表示用户所选择的文件//java.io.File selectedFile:声明了一个 java.io.File 类型的变量 selectedFile,并把 getSelectedFile() 方法返回的文件对象赋值给它。JOptionPane.showMessageDialog(null,"你选择的文件是:"+selectedFile.getAbsolutePath());//JOptionPane:这是 Java Swing 库中的一个类,可用于创建各种对话框,像消息对话框、确认对话框等。//showMessageDialog:这是 JOptionPane 类的一个静态方法,用于显示一个消息对话框。//第一个参数 null:表示对话框的父组件,这里传入 null 意味着对话框会显示在屏幕中央。//第二个参数:是要显示的消息内容。selectedFile.getAbsolutePath() 方法会返回所选文件的绝对路径,把这个路径和提示信息拼接后作为消息内容显示在对话框里。}else if (state == JFileChooser.CANCEL_OPTION) {// 用户点击了“取消”按钮JOptionPane.showMessageDialog(null, "你取消了文件选择。");}}
}

-  获取图片路径 

   在inageUtils中定义一个二维数组 然后用loadImage方法【(String path)】  定义对象File 然后for遍历得到文件中图片的像素点 并且储存到二维数组中 此时用到的是image.getRGB(i,j)

【详细代码看上边】

http://www.ds6.com.cn/news/88504.html

相关文章:

  • wordpress文章浏览数昆明seo
  • 公司名称吉凶查询大吉惠州seo推广外包
  • wordpress 旅游网站免费b站推广网站有哪些
  • 自己做网站需要钱吗抖音seo排名优化公司
  • 大连 做 企业网站微信小程序怎么开通
  • 企业管理定制软件东莞seo靠谱
  • 三五互联做的网站怎么样常德论坛网站
  • 区政府网站群建设方案品牌推广运营策划方案
  • 微企点建好网站后要怎么做小程序开发平台有哪些
  • wordpress中文公司模板长春网络优化最好的公司
  • 做房产的一般用哪个网站网站seo搜索引擎优化教程
  • 网站一个人可以做吗自动seo系统
  • 十大舆情网站吸引顾客的营销策略
  • wordpress cash back镇江搜索优化技巧
  • 科研平台网站建设计划百度指数可以查询多长时间的
  • 延吉市建设局网站seo引擎优化外包公司
  • 民权平台网站建设百度云电脑版网站入口
  • 网站备案能快速备案嘛广告联盟有哪些平台
  • 床上做受网站广东百度推广的代理商
  • 福建住房与城乡建设网站百度刷seo关键词排名
  • 免费python在线正常网站汕头seo代理
  • 小程序建站工具绍兴seo排名公司
  • 怎样自己做免费网站如何做seo搜索引擎优化
  • 外贸网站优化怎么做做网络推广需要多少钱
  • 建设网站要准备什么网站流量统计查询
  • 苏州h5网站cps推广联盟
  • 郑州网站建设公司qq青岛神马排名优化
  • 做网站 图文教程seo快速排名培训
  • 海口网站建设q.479185700惠一级造价工程师
  • 南山网站设计线汕头企业网络推广