java图片添加阴影_JAVA抓取像素设置阴影

[java]代码库/*

* Copyright (c) 2007, Romain Guy

* All rights reserved.

*

* Redistribution and use in source and binary forms, with or without

* modification, are permitted provided that the following conditions

* are met:

*

* * Redistributions of source code must retain the above copyright

* notice, this list of conditions and the following disclaimer.

* * Redistributions in binary form must reproduce the above

* copyright notice, this list of conditions and the following

* disclaimer in the documentation and/or other materials provided

* with the distribution.

* * Neither the name of the TimingFramework project nor the names of its

* contributors may be used to endorse or promote products derived

* from this software without specific prior written permission.

*

* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR

* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT

* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,

* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY

* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE

* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

*/

package frc.chapter11.repaintManager;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.GradientPaint;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.GridBagConstraints;

import java.awt.GridBagLayout;

import java.awt.Insets;

import java.awt.Rectangle;

import javax.swing.JComponent;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.SwingUtilities;

import javax.swing.UIManager;

import javax.swing.UnsupportedLookAndFeelException;

import javax.swing.plaf.nimbus.NimbusLookAndFeel;

/**

*

* @author Romain Guy

*/

public class RepaintManagerDemo extends JFrame {

private ReflectionPanel reflectionPanel;

public RepaintManagerDemo() {

super("Repaint Manager Demo");

setContentPane(new GradientPanel());

getContentPane().setLayout(new GridBagLayout());

add(buildReflectionPanel(), new GridBagConstraints(0, 0, 1, 1, 1.0,

1.0, GridBagConstraints.CENTER, GridBagConstraints.NONE,

new Insets(96, 96, 96, 96), 0, 0));

pack();

setLocationRelativeTo(null);

setResizable(false);

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

@Override

public void dispose() {

super.dispose();

//QTSession.close();

}

private JComponent buildReflectedComponent() {

//try {

//Class.forName("quicktime.QTSession");

//} catch (ClassNotFoundException ex) {

//return new DummyPanel();

//}

//

//try {

//QTSession.open();

//String url = "http://images.apple.com/movies/sony_pictures/spider-man_3/spider-man_3-tlr1_h.480.mov";

//DataRef dRef = new DataRef(url);

//Movie mov = Movie.fromDataRef(dRef, StdQTConstants.newMovieActive);

//MoviePlayer player = new MoviePlayer(mov);

//mov.start();

//JComponent qtPlayer = QTFactory.makeQTJComponent(player)

//.asJComponent();

//

//return qtPlayer;

//} catch (Exception e) {

//return new DummyPanel();

//}

return new DummyPanel();

}

private JComponent buildReflectionPanel() {

reflectionPanel = new ReflectionPanel();

reflectionPanel.add(buildReflectedComponent());

return reflectionPanel;

}

private static class GradientPanel extends JPanel {

GradientPanel() {

super(new BorderLayout());

}

@Override

protected void paintComponent(Graphics g) {

Graphics2D g2 = (Graphics2D) g.create();

g2.setPaint(new GradientPaint(0.0f, getHeight() * 0.22f, new Color(

0x202737), 0.0f, getHeight() * 0.7f, Color.BLACK, true));

Rectangle clip = g.getClipBounds();

g2.fillRect(clip.x, clip.y, clip.width, clip.height);

g2.dispose();

}

}

public static void main(String[] args) {

try {

//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

UIManager.setLookAndFeel(new NimbusLookAndFeel());

//} catch (IllegalAccessException ex) {

//ex.printStackTrace();

//} catch (InstantiationException ex) {

//ex.printStackTrace();

} catch (UnsupportedLookAndFeelException ex) {

ex.printStackTrace();

//} catch (ClassNotFoundException ex) {

//ex.printStackTrace();

}

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

new RepaintManagerDemo().setVisible(true);

}

});

}

}

[代码运行效果截图]

fbc60a14dc0e77efd0973341c745da14.png

[源代码打包下载]

7ab7b94785bbdb79d4aaa6009386543f.gifDesktop.rar(50积分)[2 次下载]

694748ed64b9390909c0d88230893790.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值