小项目分享---混色器

编写代码的同志们一般懂美术的就少了,偶也是,什么色轮、三维加色等等。虽然看过一些书籍(如内田广由纪的《配色基础原理》),不过还是一知半解的。

下面这些专业配色工具一直也不怎么会用。

所以,本着程序为生活服务的原则,我用java和c#分别编写了一个混色器。想看看不同比率的颜色混合起来得到的是什么效果么?代码如下,与君分享:

1、Java Applet:

package edu.sx.william;

import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.GridLayout; import java.awt.Panel; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener;

import javax.swing.JApplet; import javax.swing.JLabel; import javax.swing.JScrollBar;

public class SetBakColor extends JApplet implements MouseMotionListener {

    private static final long serialVersionUID = 1L;     JScrollBar jsb, jsb2, jsb3;     JLabel jl;     Container con;     public void init() {

        Panel pan = new Panel();         pan.setLayout(new GridLayout(2, 3));         con = getContentPane();         con.setLayout(new BorderLayout());         jsb = new JScrollBar(JScrollBar.HORIZONTAL, 0, 1, 0, 255);         jsb2 = new JScrollBar(JScrollBar.HORIZONTAL, 0, 1, 0, 255);         jsb3 = new JScrollBar(JScrollBar.HORIZONTAL, 0, 1, 0, 255);

        jsb.addMouseMotionListener(this);         jsb2.addMouseMotionListener(this);         jsb3.addMouseMotionListener(this);

        jl = new JLabel("the RGB color");

        jl.addMouseMotionListener(this);         pan.add(jsb);         pan.add(jsb2);         pan.add(jsb3);         pan.add(jl);         con.add(pan,BorderLayout.NORTH);     }

    @Override     public void mouseDragged(MouseEvent e) {

        jl.setText("R:" + jsb.getValue() + "   G:" + jsb2.getValue() + "   B:"                 + jsb3.getValue());         con.setBackground(new Color(jsb.getValue(), jsb2.getValue(), jsb3                 .getValue()));     }

    @Override     public void mouseMoved(MouseEvent e) {

    }   }

运行效果:

2、C# WinForm

(Winform只列出了功能实现代码,用到的控件为GroupBox、Label、HScrollBar)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;

namespace WfAdo {     public partial class SetBakColor : Form     {         public SetBakColor()         {             InitializeComponent();         }

        int r = 0, g = 0, b = 0;

        private void hScrollBar3_Scroll(object sender, ScrollEventArgs e)         {             label3.Text = hScrollBar3.Value.ToString();

            r = int.Parse(label3.Text);             this.BackColor = Color.FromArgb(r, g, b);         }

        private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)         {             label1.Text = hScrollBar1.Value.ToString();             g = hScrollBar1.Value;//两种获得颜色的方法!             this.BackColor = Color.FromArgb(r, g, b);         }

        private void hScrollBar2_Scroll(object sender, ScrollEventArgs e)         {             label2.Text = hScrollBar2.Value.ToString();             b = int.Parse(label2.Text);             this.BackColor = Color.FromArgb(r, g, b);         }     } }//好像C#敲的代码更少些:-)

运行效果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Oracle:创建db_link

    global_name也就是数据库的全局数据库名,可已使用select * from global_name;查询:

    williamwong
  • 使用yum升级Fedora系统中的firefox为最新发布版本

    安装fedora后,发现默认的升级只能升级当前firefox版本为最新更新版本,不会跨版本升级,经过搜索,如下方法最简洁有效,特此分享:

    williamwong
  • 将MySQL数据迁移到Oracle

    因为项目的原因,今晚将mysql数据库的内容尝试迁移到oracle,虽然结果失败,不过学到了不少,下次就不一定了,哈哈

    williamwong
  • java在acm中大数运算教程

    import java.io.*; import java.util.*; public class Main { public static void ...

    triplebee
  • 短视频商城源码,安卓几种弹窗方法

    yunbaokeji柯基
  • OpenCV二值图像案例分析精选 | 第二期

    大家好,之前发过一篇文章是知识星球上问题,选择了几个经典的二值图像分析问题,从思路到代码实现给大家分析一波,最近又总结收录了知识星球上的提问,实现了从思路分析到...

    OpenCV学堂
  • Java判断计算机网络连接是否正常

    麦克劳林
  • 3分钟了解Mysql空间搜GeoHash

    Mysql 内置函数方案,适合于已有业务,新增加LBS功能,增加经纬度字段方可,避免数据迁移,在5.7.5后实现更多功能实现INNODB的空间搜方法,之前版本...

    py3study
  • 网罗几种中Python配置文件方式,总有一款适合你

    configpare算是老牌的配置文件选择之一了,优点是标准库,不需要安装,但是需要注意的一点是,在Python2和Python3上使用方式略有差异

    追马
  • 专访微软全球资深副总裁:中国AI正在爆发式崛起,千万不要复制美国,要建立自己的模式,才能做领导者

    记者 | 周翔 编辑 | 鸽子 近日,在微软亚洲研究院与哈工大共同举办的第十九届“二十一世纪的计算”国际学术研讨会上, Peter Lee 博士作为微软全球资深...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券