为了降低文件的大小,经常要把小图片合并成一个大图片,在屏幕上显示的时候,可以根据需要只显示该图片中的一部分图片。Graphics中的setClip方法可以实现该功能。
setClip方法的原理是通过只在屏幕上显示一部分内容,让图片恰好位于该部分的内容显示出来。
setClip的方法类似在屏幕上挖了一个“透视孔”,只有位于该孔中的图片内容显示出来。
setClip的方法说明如下:
public void setClip(int x, int y, int width, int height)
其中:
x——可以显示的矩形区域左上角的x坐标
y——可以显示的举行区域左上角的y坐标
width——矩形的宽度
height—矩型的高度
实际使用示例:
g.setClip(10,20,20,30);
g.drawImage(image,10,20,Graphics.LEFT | Graphics.TOP);
则只显示image对象代表的图片中从开始位置,高30,宽20的部分,其余的部分都不显示。
注意:在使用完setClip以后,需要恢复系统的默认设置,使整个屏幕都可以显示:
g.setClip(0,0,this.getWidth(),this.getHeight());
分享到:
相关推荐
对于窗体的圆角,我们可以使用`GraphicsPath`对象来定义一个带有圆角的矩形路径,然后用`FillRegion`方法填充该路径: ```csharp private readonly Size cornerRadius = new Size(20, 20); // 圆角半径 protected ...
### J2ME基础知识总结 #### 一、J2ME概述 Java 2 Micro Edition(简称J2ME)是Sun Microsystems为嵌入式...以上两个示例分别展示了J2ME中图形界面和多媒体功能的基础使用方法,对于初学者而言是非常好的学习资源。
g.SetClip(clipRect); // 绘制直线 Pen linePen = new Pen(Color.Blue, 2); Point p1 = new Point(50, 50); Point p2 = new Point(300, 300); g.DrawLine(linePen, p1, p2); // 恢复默认裁剪 g.ResetClip(); ``` ...
public class WelcomForm extends Canvas implements CommandListener { Image img1; Command gocmd; Timer time=new Timer(); Font f;... f= Font.getFont(Font.FACE_SYSTEM,... g.setClip(0, y, Width, 5);
g.setClip(x, y, width, height); ``` 2. **指定重绘区域**:使用`repaint(x, y, width, height)`方法来指定需要更新的特定区域,而不是全屏重绘。 #### 双缓冲技术的应用 双缓冲是一种有效减少闪烁并提高绘制...
11. **Clip区域**:使用`g.SetClip()`方法可以限制绘制的区域,超出该区域的绘制将被忽略。 12. **Transform矩阵**:通过设置Graphics对象的Transform属性,可以进行坐标变换,如缩放、旋转和倾斜。 13. **使用...
g.SetClip(rect) g.DrawString(text, lblText.Font, brush, rect, New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center}) g.ResetClip() End Sub ``` 3. ...
"操作方法:"+ "\n\n" + "游戏中用方向键和2、4、6、8键控制主角移动以及进行菜单选择,5键或OK键选定,3键调出/关闭属性菜单,左软键调出操作菜单,可查看帮助信息,保存游戏或回到主菜单。"+ "\n\n" + "关键...
主要代码: @Override public void paint(Graphics g,... g2d.setClip(clip); g2d.setPaint(p1); g2d.drawRoundRect(0,0,w-1,h-1,20,20); g2d.setPaint(p2); g2d.drawRoundRect(1,1,w-3,h-3,18,18); }
g.SetClip(new Rectangle(0, 0, Width, Height)); // 限制绘制区域 g.DrawRectangle(Pens.Black, 0, 0, Width - 1, Height - 1); // 示例:绘制边框 } } ``` 4. **优化性能** 考虑到性能,我们可以利用双缓冲...
你可以通过SetClip和Transform方法来改变绘图区域和坐标变换。 9. **路径绘图**:Path对象允许你创建复杂路径,可以组合直线、曲线和封闭形状。例如,`GraphicsPath myPath = new GraphicsPath();`,然后添加线条和...
g.SetClip(new Rectangle(10, 10, 100, 100)); // 设置剪辑区域 g.FillRectangle(Brushes.Red, 0, 0, 200, 200); // 填充红色矩形,但只在剪辑区域内可见 } ``` 而在WPF中,代码可能如下: ```csharp void ...
在C#中,我们通常通过Graphics类的DrawRectangle方法来绘制矩形,通过SetClip方法限制绘制区域,通过TranslateTransform方法实现图形的平移,通过RotateTransform方法实现旋转。 对于矩形的大小调整,我们可以监听...
g2d.setClip(clip); // 画一个黑色边框 paint = new GradientPaint(0,0,new Color(0,0,0), 0,btnHeight-1,new Color(100,100,100)); g2d.setPaint(paint); g2d.drawRoundRect(0,0,btnWidth-1,btnHeight-...
g2.setClip(shape); g2.setColor(Color.blue); g2.fill(shape.getBounds()); g2.setColor(Color.yellow); for (int j = shape.getBounds().y; j < shape.getBounds().y + shape.getBounds().height; j=j+3) { ...
`Graphics`对象在`paint`方法中被用来进行实际的绘制操作,可以调整剪切区域(`g.setClip`)以只绘制精灵当前应该显示的部分。 通过这些基本元素,开发者可以创建具有复杂行为和动画效果的游戏对象,例如角色移动、...
在`Graphics`对象上,我们可以使用`DrawImage`方法来绘制圆形头像。这里需要一个半径相同的椭圆来剪裁图片: ```csharp int radius = Math.Min(bitmap.Width, bitmap.Height) / 2; Rectangle rect = new Rectangle...
- **J2ME**:使用 `Graphics.setClip()` 方法来限制绘图区域。 - **Android**:使用 `Canvas.clipRect(float left, float top, float right, float bottom, Region.Op op)` 方法来剪切绘图区域。 12. **旋转** -...
此外,可以使用getColor()、setColor()、getFont()、setFont()等方法来控制绘图的颜色和字体。 6.1.2 Graphics类的其他功能还包括控制剪贴区,如getClip()和setClip(),以及填充图形,例如fillOval()和fillRect()。...
g2d.setClip(new Ellipse2D.Float(0, 0, getWidth(), getHeight())); g2d.fillRect(0, 0, getWidth(), getHeight()); } public static void main(String[] args) { SwingUtilities.invokeLater(() -> new ...