如何对图片进行放大或缩小
我有一个函数,功能是显示程序里用到的画图,现在需要加一个放大或是缩小功能,没做过这方面的,没思路了,有谁做个吗,大家讨论下吧,
_VOID Canvas_Flip(_HANDLE hCanvas, _INT nX, _INT nY, _INT nWidth, _INT nHeight)
{
HDC hDC = (HDC)::SendMessage(SimulatorData.m_hMainFrame, UM_GetDrawDevices, NULL, NULL);
_CANVASOBJECT* pCanvas = (_CANVASOBJECT*)hCanvas;
if (hDC && pCanvas)
{
_RECT rect;
GetScreenRect(&rect);
if ((MediaPlayerRect.nWidth <= 0) || (MediaPlayerRect.nHeight <= 0))
BitBlt(hDC, rect.nLeft + nX, rect.nTop + nY, nWidth, nHeight, pCanvas->hMemDC, nX, nY, SRCCOPY);
else
{
_INT x1 = nX, x2 = MediaPlayerRect.nLeft, x3 = MediaPlayerRect.nLeft + MediaPlayerRect.nWidth, x4 = nX + nWidth;
_INT y1 = nY, y2 = MediaPlayerRect.nTop, y3 = MediaPlayerRect.nTop + MediaPlayerRect.nHeight, y4 = nY + nHeight;
if (x4 > x1 > 0 && y2 > y1)
BitBlt(hDC, rect.nLeft + x1, rect.nTop + y1, x4 - x1, y2 - y1, pCanvas->hMemDC, x1, y1, SRCCOPY);
if (x2 > x1 > 0 && y3 > y2)
BitBlt(hDC, rect.nLeft + x1, rect.nTop + y2, x2 - x1, y3 - y2, pCanvas->hMemDC, x1, y2, SRCCOPY);
if (x4 > x3 > 0 && y3 > y2)
BitBlt(hDC, rect.nLeft + x3, rect.nTop + y2, x4 - x3, y3 - y2, pCanvas->hMemDC, x3, y2, SRCCOPY);
if (x4 > x1 > 0 && y4 > y3)
BitBlt(hDC, rect.nLeft + x1, rect.nTop + y3, x4 - x1, y4 - y3, pCanvas->hMemDC, x1, y3, SRCCOPY);
}
}
::SendMessage(SimulatorData.m_hMainFrame, UM_ReleaseDrawDevices, (WPARAM)hDC, NULL);
}
...全文
相关推荐
JS实现图片局部放大或缩小的方法
主要介绍了JS实现图片局部放大或缩小的方法,涉及javascript事件响应及页面元素动态操作相关技巧,需要的朋友可以参考下
Matlab进行图片分块,按比例放大或缩小,然后将放大或缩小的图合并为原图。
Matlab进行图片分块,按比例放大或缩小,然后将放大或缩小的图合并为原图。
JAVA 图片反色处理,放大或缩小
编写的JAVA类可以进行图片反色处理,图片的放大和缩小。
通过鼠标滚动来放大或缩小图片
该示例是本人用C#封装的一个javascript脚本,自己定义了一个属性用来设置图片的地址,通过鼠标可以缩放图片的大小.
android Matrix实现图片随意放大缩小或拖动
本文实例为大家分享了android Matrix图片随意放大缩小和拖动的具体代码,供大家参考,具体内容如下 step1:新建一个项目DragAndZoom,并准备一张照片放在res/drawable-hdpi目录下,如下图所示: step2: 设置应用的UI界面,在main.xml中设置: <?xml version=1.0 encoding=utf-8?> <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android android:orientation=vertical androi


