91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

518抽獎軟件源碼之:ImageStone顯示處理透明PNG圖片

發布時間:2020-07-20 18:34:02 來源:網絡 閱讀:507 作者:wsg1212 欄目:編程語言

518抽獎軟件源碼之:ImageStone顯示處理透明PNG圖片

在開發“518抽獎軟件”的時候,圖片抽獎模式的時候,會遇到PNG透明圖片。 需要對PNG透明圖片進行顯示、放大縮小、保存等處理。如何在縮小并保存后還保持透明,如何顯示透明圖片,請參看下面源碼。

顯示透明PNG圖片


	if (((FCObjImage*)img)->Load(file, NULL))
	{
		if (bAlpha) 
			((FCObjImage*)img)->ApplyEffect(FCEffectPremultipleAlpha()); //顯示透明PNG需要加這行代碼
	}
	
	void Timg::draw (HDC hDc, RECT rc)
	{
		if (m_w <= 0 || m_h <= 0) return;
		if (rc.left >= rc.right || rc.top >= rc.bottom) return;
		if (m_w == rc.right - rc.left && m_h == rc.bottom - rc.top)
			((FCObjImage*)img)->Draw(hDc, rc.left, rc.top);
		else
			((FCObjImage*)img)->Draw(hDc, rc);
	}	

縮小透明PNG圖片并保存


//最關鍵的是如果要縮小并保存圖片,圖片加載的時候,不要執行 ApplyEffect(FCEffectPremultipleAlpha()) !!
//下面是一般的縮放保存代碼
void Timg::stretch (int w, int h)
{
	if (m_w <= 0 || m_h <= 0) return;
	((FCObjImage*)img)->Stretch_Smooth(w, h);
	m_w = w;
	m_h = h;
}

BOOL Timg::save (const WCHAR* file, int quality)
{
	return ((FCObjImage*)img)->Save(file, quality);
}

檢查圖片是否是透明的


BOOL Timg::isTransparent()
{
	if (!isLoad()) return FALSE;
	if (((FCObjImage*)img)->ColorBits() != 32) return FALSE;

	int w = ((FCObjImage*)img)->Width();
	int h = ((FCObjImage*)img)->Height();

	int step_y = h * 0.05;
	if (step_y < 1) 
		step_y = 1;
	int step_x = w * 0.05;
	if (step_x < 1) 
		step_x = 1;

	for (int y = 0; y < h; y += step_y)
	{
		BYTE* pCurr = ((FCObjImage*)img)->GetBits(y);
		for (int x = 0; x < w; x += step_x)
		{
			if (255 != ((RGBQUAD*)pCurr)->rgbReserved)
				return TRUE;
			pCurr += (step_x * 4);
		}
	}

	return FALSE;
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

禹州市| 加查县| 陆川县| 南和县| 乐清市| 三都| 永平县| 萍乡市| 陈巴尔虎旗| 宜阳县| 垣曲县| 嵩明县| 大田县| 宁南县| 铁岭市| 平舆县| 花莲县| 南部县| 江北区| 承德县| 鹤岗市| 海安县| 焦作市| 湖口县| 平度市| 东山县| 诏安县| 巴林左旗| 阿拉善右旗| 孙吴县| 大石桥市| 陵川县| 越西县| 开化县| 迁西县| 兴业县| 江西省| 酒泉市| 大冶市| 台中市| 梅州市|