位图剪切参考重载方法4和6,重载方法6比较简单
public static Bitmap createBitmap (Bitmap src)
从原位图src复制出一个新的位图,和原始位图相同
public static Bitmap createBitmap (int[] colors, int width, int height, Bitmap.Config config)
这个函数根据颜色数组来创建位图,注意:颜色数组的长度>=width*height
此函数创建位图的过程可以简单概括为为:更加width和height创建空位图,然后用指定的颜色数组colors来从左到右从上至下一次填充颜色。config是一个枚举,可以用它来指定位图“质量”。
public static Bitmap createBitmap (int[] colors, int offset, int stride, int width, int height, Bitmap.Config config)
此方法与2类似,但我还不明白offset和stride的作用。
public static Bitmap createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)
从原始位图剪切图像,这是一种高级的方式。可以用Matrix(矩阵)来实现旋转等高级方式截图
参数说明:
Bitmap source:要从中截图的原始位图
int x:起始x坐标
int y:起始y坐标
int width:要截的图的宽度
int height:要截的图的宽度
Bitmap.Config config:一个枚举类型的配置,可以定义截到的新位图的质量
返回值:返回一个剪切好的Bitmap
public static Bitmap createBitmap (int width, int height, Bitmap.Config config)
根据参数创建新位图
public static Bitmap createBitmap (Bitmap source, int x, int y, int width, int height)
简单的剪切图像的方法,可以参考上面的4.
文章出处:http://www.cnblogs.com/igrl/archive/2010/07/30/Bitmap_createBitmap.html
分享到:
相关推荐
接下来,`createBitmap()`函数使用这个Matrix对象和原始Bitmap来创建一个新的缩放后的Bitmap。 在Android中处理Bitmap时,需要注意内存管理,因为大尺寸的Bitmap可能会消耗大量内存,导致OOM(Out Of Memory)异常...
为了处理用户对toolbar的移动操作,我们需要重载`OnNcLButtonDown`消息处理函数。在这个函数中,我们可以检测鼠标点击是否在toolbar的非客户区,如果是,则开始拖动过程: ```cpp ON_WM_NCLBUTTONDOWN() { CPoint ...
1. **创建位图**:在MFC中,你可以通过`CBitmap`类的构造函数创建一个空的位图对象,然后使用`LoadBitmap`或`CreateBitmap`成员函数加载或创建位图资源。例如,你可以从资源文件加载一个位图: ```cpp CBitmap ...
默认情况下,MFC TabCtrl控件的标签是纯文本的,但通过重载和自定义,我们可以实现更丰富的视觉效果,如在标签上加载BMP(Bitmap)图片,以增强用户体验和界面美观度。 要实现这一功能,首先需要了解MFC的CtabCtrl...
当用户与窗体交互时,操作系统会发送各种消息到窗体的窗口过程(Window Procedure),我们可以通过重载`WndProc`函数来处理这些消息。 实现半透明效果的关键是设置窗口的WS_EX_LAYERED样式,并调用`...
这个接口有三个方法:`onScaleBegin()`, `onScale()` 和 `onScaleEnd()`,分别在缩放开始、进行中和结束时调用。 - 在`onScale()`方法中,我们可以获取到缩放比例(scaleFactor),并根据这个比例调整图片的大小。 2...
在这个函数中,首先调用`CreateStatic`方法初始化分隔器,然后使用`CreateView`方法为每个窗格创建视图。例如: ```cpp BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { if ...
在CListCtrl中,我们可以通过重载OnHScroll和OnVScroll消息处理函数来实现自绘。在这个过程中,你需要绘制滚动条的各个部分,如滑块、轨道等,确保它们与界面主题相匹配。 至于在每行前添加小图标,可以利用...
这通常需要使用到CreateBitmap()来创建位图,LoadImage()加载图像资源,然后调用CreatePatternBrush()创建位图刷,最后使用SetWindowRgn()函数将这个区域设置为窗口的形状区域。 在MFC中,我们可能会创建一个继承自...
1. **重载OnPaint()方法**:当需要自定义按钮的显示时,可以重载CButton派生类的OnPaint()成员函数。在该函数内,使用CPaintDC类创建设备上下文对象,并通过CDC类的成员函数如FillSolidRect()填充按钮的背景色。 ``...
3. **实现Create函数**:编辑`ShowSplashScreen`函数中调用的`Create`函数。该函数负责加载位图、计算窗口尺寸,并创建启动画面窗口。 ```cpp BOOL CSplashWnd::Create(CWnd* pParentWnd) { if (!mBitmap....
在MFC中,CBitmap类用于处理位图对象,我们可以通过CreateBitmap()函数创建一个新的位图,或通过LoadBitmap()函数加载资源中的位图。之后,使用CDC的DrawBitmap()方法将位图绘制到指定位置。 混合模式则决定了颜色...
这个示例应该包含了类的源代码、位图资源和配置了正确事件处理的代码,你可以参考它来快速掌握 `CBitmapSlider` 的使用方法。 总之,`CBitmapSlider` 是 MFC 开发中增强用户界面的一个实用工具,它通过贴图实现了...
1. **图形绘制**:利用API中的`GDI (Graphics Device Interface)`函数,如`CreateBitmap`、`CreateCompatibleDC`、`SelectObject`、`BitBlt`等,来绘制风筝的形状。每个风筝片(红、蓝、黄)可能作为单独的位图对象...
在VC++中,实现屏幕抓取主要涉及Windows API中的几个关键函数,如`GetDC()`、`BitBlt()`和`CreateBitmap()`等。`GetDC()`函数用于获取设备上下文(Device Context,DC),这是Windows系统中表示设备(如显示器)的一...
通过重载CStatic的OnPaint函数,可以实现这个功能,利用CPaintDC类进行绘图操作。 5. **响应鼠标和键盘事件**:虽然静态控件通常是不可交互的,但通过设置特定样式(如SS_NOTIFY),可以使它能够响应鼠标点击,然后...
这通常涉及到`CreateCompatibleDC`函数创建兼容DC,然后用`CreateBitmap`或`CreateDIBSection`创建位图对象。 3. **选择位图**:将创建的位图对象选入到DC中,使用`SelectObject`函数完成这个操作。 4. **设置MDI...
我们可以通过调用LoadBitmap、CreateBitmap等函数来加载或创建位图,并通过DrawBitmap方法将其显示到窗口上。 接下来,我们关注DIB类。DIB包含图像的颜色信息和布局信息,可以被Windows系统用来在不同设备上以一致...
建立一个应用程序 ................................................................................................................................ 17 应用程序的关闭 .......................................
4. **自定义菜单绘制**:为了在菜单中显示BMP图标,我们需要重载`OnPaint()`函数并处理WM_PAINT消息。更重要的是,需要处理WM_MENUSELECT消息,当用户选择一个菜单项时,这个消息会被发送。在消息处理函数中,我们...