Terminé

Improved OSD for Media Player Classic

Hello. For my personal use, I want to improve the Media Player Classic (HC) OSD. I'm using Microsoft VS 2010 Pro to compile.

have already modified the code of file [url removed, login to view] for obtain more information in the OSD. Now I can see Time, Elapsed Time, Remaining Time, Duration and Estimated Time until the end of the movie.

Then in cpp [url removed, login to view] I added this code to render the text over the video:

//CDC * pDC = CDC::FromHandle(m_MemDC);

CWindowDC dc(m_pWnd);

Graphics graphics([url removed, login to view]());

[url removed, login to view](SmoothingModeAntiAlias);

[url removed, login to view](InterpolationModeHighQualityBicubic);

[url removed, login to view](PixelOffsetModeHighQuality);

SolidBrush Brush(Color(255, 255, 255, 255));

FontFamily fontFamily(L"Arial");

StringFormat strformat;

wchar_t pszbuf[] = L"12:34:56";

GraphicsPath path;

[url removed, login to view](pszbuf, wcslen(pszbuf), &fontFamily, FontStyleBold, 40, Gdiplus::Point(0,0), &strformat );

Pen pen(Color(255,0,0,0), 6);

[url removed, login to view](LineJoinRound);

[url removed, login to view](&pen, &path);

SolidBrush brush(Color(255, 255,255,0));

[url removed, login to view](&brush, &path);

But the text flashes (blinks). If I change graphics Graphics ([url removed, login to view] ()) for Graphics graphics (pDC-> GetSafeHdc ()), then the text not blinks, but is semi-transparent and is not highlighted. I want my text looks like this ([url removed, login to view]) an not like this ([url removed, login to view])

This code works fine (no flash), but the outline does not have too much quality and numbers look ugly:

CString texto;

texto = "12:24:45";

pDC->BeginPath();

pDC->TextOut(40, 40, texto, lstrlen (texto));

pDC->EndPath();

CPen penOutline;

[url removed, login to view](PS_SOLID, 3, RGB(0,0,0));

CPen* pOldPen = pDC->SelectObject(&penOutline);

pDC->StrokePath ();

pDC->SelectObject(pOldPen);

pDC->SetTextColor(RGB(255,255,0));

pDC->TextOut(40,40, texto,lstrlen (texto));

Sorry for my bad English, my native language is Spanish. I hope I explained well.

Compétences : Programmation C++

en voir plus : osd classic player, media player classic osd time, spanish programming language, microsoft programming language, media programming, dc programming, bad programming, osd, transparent in spanish, flash programming language, bad l, texto, movie player, transparent movie, media player code, player movie, media player player, programming media, programming video player code, graphicspath

Concernant l'employeur :
( 1 commentaire ) Barcelona, Spain

Nº du projet : #4123915

Décerné à:

OvchinnikovAl

Hi, I think you should use double buffering technique. Thanks

%selectedBids___i_sum_sub_4% %project_currencyDetails_sign_sub_5% USD en 1 jour
(1 Évaluation)
2.8

2 freelance font une offre moyenne de $40 pour ce travail

ChaiGou

That is interesting. I can help you to satisfy. Where is OSD project? please send me your project source and award me.

%bids___i_sum_sub_35% %project_currencyDetails_sign_sub_36% USD en 3 jours
(1 Évaluation)
1.4