各路高人,徒弟有一个任务,要求图像在缩小0.25倍以下都不失真。我用三次卷积内插方法,好像实现不了。请各路高人指点。
解决方案 »
- MFC 在sqlserver里可以查到记录,用ado却查不到记录
- 读取文本文件中数据到结构体中的问题
- 急 求助 activeX
- 菜鸟送分问题之——如何正确建立和销毁对话框类?
- 可能是UNICODE的问题。谁能帮助我?
- 关于GDI+,如何缩放Image/Bitmap,注意,并不是在画的时候,而是创建完成,画之前,对内存的信息进行缩放
- addr=(LPCVOID)ress何解?
- 在C++中可以直接调用vbscript脚本,不需要wsh。不知道这段代码如何实现!
- 谁来帮我:消息处理问题
- 我的com组件在vb下可用,在asp下不可用
- 带有全透像素点的透明图层混合, 算法公式如何实现?
- visual studio 2010的帮助文档的问题
图像缩小可以用cximage的Resample函数来实现
BOOL CMultiImageDlg::ResizeSrcPicture(BYTE *pbySrcPic,BYTE *pByDstPic,int nDstWidth,int nDstHeight, int nSrcWidth,int nSrcHeight)
{
BYTE * pByte;
BitmapData *pBitmapData = new BitmapData;
Bitmap ppbitmap (nSrcWidth, nSrcHeight, (nSrcWidth*24+31)/32*4, PixelFormat24bppRGB, pbySrcPic);
Rect rect( 0, 0, nDstWidth, nDstHeight);
Graphics imgGraphics(&ppbitmap);
Bitmap bitmap(nDstWidth,nDstHeight,&imgGraphics);
Graphics bmpGraphics(&bitmap);
bmpGraphics.DrawImage(&ppbitmap,0,0,nDstWidth,nDstHeight);
bitmap.LockBits(&rect, ImageLockModeRead, PixelFormat24bppRGB, pBitmapData );
pByte= (BYTE *) pBitmapData->Scan0;
long BufLen=(nDstWidth * 24 + 31)/ 32 * 4*nDstHeight;
memcpy(pByDstPic,pByte,BufLen);
bitmap.UnlockBits( pBitmapData );
delete [] pBitmapData;
return TRUE;}
newBmiHder.biSize=sizeof(BITMAPINFOHEADER);
newBmiHder.biWidth=StaticRect.Width();
newBmiHder.biHeight=StaticRect.Height();
newBmiHder.biPlanes=1;
newBmiHder.biBitCount=24;
newBmiHder.biCompression=BI_RGB;
newBmiHder.biSizeImage=BufferLen;
newBmiHder.biXPelsPerMeter=0;
newBmiHder.biYPelsPerMeter=0;
newBmiHder.biClrUsed=0;
newBmiHder.biClrImportant=0;
dc[i]=((CStatic *)GetDlgItem(703+i))->GetDC();
BYTE *pNewBm[9];
BITMAPINFOHEADER newBmiHder;
StretchDIBits(dc[i]->GetSafeHdc(),0,0,StaticRect.Width(),StaticRect.Height(),0,0,StaticRect.Width(),StaticRect.Height(),pNewBm[i],(LPBITMAPINFO)&newBmiHder,DIB_RGB_COLORS,SRCCOPY);#include "./gdiplus/GdiPlus.h"
using namespac
要翻某墙才能看,所以直接发一下结果:(1) 第 1 名是: Lanczos. 其輸出的檔案大小變成 84.3 KB.
文字的線條是最銳利, 畫面最清晰的! 不過由於過度強化了銳利度, 造成了一點額外的小雜訊.(2) 第 2 名有三種並列: Bilinear (65.2 KB), Hanning (65.7 KB), 和 Hermite (65.7 KB).
這三種畫面清晰度差不多, 畫面的色澤最貼近原圖, 失真程度最少, 不過文字線條的銳利度比 Lanczos 稍微差一點點.(3) 第 5 名是: Mitchell (72.8 KB).(4) 第 6 名是: Gaussian (70.7 KB).(5) 第 7 名是: Bell (71.6 KB).(6) 第 8 名是: B-Spline (72.8 KB).(7) 第 9 名是: Nearest-neighbor (36.7 KB).
使用它縮圖的畫質最糟糕, 但唯一的優點是檔案變小了.
http://blog.csdn.net/lifesider/article/details/6527267