黑白照片如何变彩色?看完这篇你就会了

3c7509c6a7ce41f9de1ba1f42f898636.jpeg

小伙伴家里会有一些黑白的老照片吗?这些照片可能是父辈或者是爷爷奶奶那一代人拍摄的,由于当时的科技还不发达,能够拍一张黑白照片就已经是弥足珍贵的事了。但是随着现在科技的不断发展,连给黑白照片上色的事情都能做到了。那你们知道怎么给黑白照片上色吗?想为黑白照片上色的小伙伴,快点跟着文章往下看吧。

388bf44e46526efc50850bf03ee961a7.jpeg

方法一:使用Styler APP进行黑白照片上色

这是一款图片特效类APP,它自带了很多种特效模板,能够帮助我们为图片添加许多有意思的特效。除了特效外,它还有许多照片修复功能,其中就有黑白上色、图片降噪、过曝修复等多种功能。

【照片上色操作】

第一步:打开APP后,点击【工具】下的【黑白上色】功能。

0d1b9da506932cba4fffbf72a1b133db.jpeg

第二步:上传需要上色的黑白照片后,等待软件自动为照片进行上色,就可以保存上色完的照片啦。

218195a50f939e401d9cae3740a092a8.jpeg

方法二:使用改图鸭进行黑白照片上色

这是一款我偶然间发现的图片编辑工具,可以做到智能帮我们自动修改图片的操作,这其中也有黑白照片上色操作。

【照片上色流程操作】

打开软件后,找到【黑白照片上色】功能,就可以添加想要上色的照片,接着软件就会自动帮我们进行上色。

d4a89df20ca4251f429fdd2060950deb.jpeg

大家看完这篇文章,都学会怎么给黑白照片上色了吗?如果你们在操作上还有什么不懂的地方,欢迎随时向我提问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
if(strPathName == "") return false; BITMAPFILEHEADER * pBFH; BITMAPINFOHEADER * pBIH; CFile file(strPathName,CFile::modeCreate | CFile::modeNoTruncate | CFile::modeRead); DWORD filelength = file.GetLength(); // 分配一块内存用于装入图象数据 if(m_hDib!=NULL) ::GlobalFree(m_hDib); m_hDib = :: GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT,filelength); if(m_hDib==NULL) { return (FALSE); } m_pDib = (BYTE *)::GlobalLock(m_hDib); if(m_pDib==NULL) { ::GlobalFree(m_hDib); return (FALSE); } // 将图象数据读入内存 file.Read(m_pDib,(UINT)filelength); file.Close(); // 读入头信息 pBFH = (BITMAPFILEHEADER *) m_pDib; pBIH = (BITMAPINFOHEADER *) (m_pDib+sizeof(BITMAPFILEHEADER)); WORD bfType = pBFH->bfType; if(bfType!=19778) // "BM"标志 { AfxMessageBox("Not a valid BMP image!"); return FALSE; } //得到位图信息 m_nWidth = (int)pBIH->biWidth; m_nHeight = (int)pBIH->biHeight; m_nBits = (int)pBIH->biBitCount; m_nColors = (int)pBIH->biClrUsed; if(m_nColors == 0) { if(m_nBits <= 8) m_nColors = 1 << m_nBits; } m_strPathName = strPathName; // 载入调色板 m_Palette.DeleteObject(); if( m_nBits <= 8 ) m_nPaletteInBytes = m_nColors * sizeof( RGBQUAD ); if( m_nBits <= 8 ) { RGBQUAD *pRGBPalette; pRGBPalette = ( RGBQUAD * )&m_pDib[ sizeof( BITMAPFILEHEADER ) + sizeof( BITMAPINFOHEADER ) ]; LOGPALETTE *pLogPalette; pLogPalette = ( LOGPALETTE * )new char[ sizeof( LOGPALETTE ) + m_nColors * sizeof( PALETTEENTRY ) ]; pLogPalette->palVersion = 0x300; pLogPalette->palNumEntries = ( unsigned short )m_nColors; for(int i=0; i<m_nColors; i++ ) { pLogPalette->palPalEntry[ i ].peRed = pRGBPalette[ i ].rgbRed; pLogPalette->palPalEntry[ i ].peGreen = pRGBPalette[ i ].rgbGreen; pLogPalette->palPalEntry[ i ].peBlue = pRGBPalette[ i ].rgbBlue; pLogPalette->palPalEntry[ i ].peFlags = 0; } if( pLogPalette == NULL ) { ::GlobalUnlock( m_hDib ); return FALSE; } m_Palette.CreatePalette( pLogPalette ); delete[] pLogPalette; }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值