Photoshop图像亮度/对比度调整 |
您所在的位置:网站首页 › ps里亮度在哪儿调 › Photoshop图像亮度/对比度调整 |
//---------------------------------------------------------------------------FORCEINLINEINT CheckValue(INT value){ return value = 255? 255 : value;}//---------------------------------------------------------------------------VOID BrightAndContrast(BitmapData *data, INT bright, INT contrast, BYTE threshold){ FLOAT cv = contrast 0 && contrast = 255) v = v >= threshold? 255 : 0; else v = CheckValue(v + (INT)((v - threshold) * cv + 0.5f)); values[i] = contrast Scan0; INT offset = data->Stride - data->Width * sizeof(ARGBQuad); for (UINT y = 0; y Height; y ++, (BYTE*)p += offset) { for (UINT x = 0; x Width; x ++, p ++) { p->Blue = values[p->Blue]; p->Green = values[p->Green]; p->Red = values[p->Red]; } }}//--------------------------------------------------------------------------- // 锁定GDI+位位图扫描线到dataFORCEINLINEVOID LockBitmap(Gdiplus::Bitmap *bmp, BitmapData *data){ Gdiplus::Rect r(0, 0, bmp->GetWidth(), bmp->GetHeight()); bmp->LockBits(&r, ImageLockModeRead | ImageLockModeWrite, PixelFormat32bppARGB, data);}//--------------------------------------------------------------------------- // GDI+位图扫描线解锁FORCEINLINEVOID UnlockBitmap(Gdiplus::Bitmap *bmp, BitmapData *data){ bmp->UnlockBits(data);}//---------------------------------------------------------------------------void __fastcall TForm1::Button3Click(TObject *Sender){ Gdiplus::Bitmap *bmp = new Gdiplus::Bitmap(L"d:\\source.jpg"); Gdiplus::Graphics *g = new Gdiplus::Graphics(Canvas->Handle); g->DrawImage(bmp, 0, 0); BitmapData data; LockBitmap(bmp, &data); BrightAndContrast(&data, 0, 100, 121); UnlockBitmap(bmp, &data); g->DrawImage(bmp, data.Width, 0); delete g; delete bmp;}//--------------------------------------------------------------------------- |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |