하늘높이의 프로그래밍 이야기

최근 업무와는 관련이 없지만... 부서에서 MS가 얼굴 나이 인식 앱을 내놓았다는...이야기가 있었다.

관련기사

http://www.theregister.co.uk/2015/05/01/microsoft_facial_recognition_age_estimation_metadata_harvesting/

http://factoll.tistory.com/1147


사실 개인적으로는 작년에 안드로이드 셋탑에서 얼굴 인식 관련 프로젝트도 했었고....
유료이긴 했지만...[갤럭시 시리즈에 들어간 SDK] 그런 분야에 뛰어난 SDK도 실컷 구경을 하고..
그것들의 성능의 뛰어남에... 두손 두발 들었기에...(그쪽은 역시 전공 전문가가...)

개발을 하려면 OpenCV로 시작해서...나름 알고리즘을 배워야지... 라고 생각하며...
컴퓨터 비전 좀 더 깊게 파보는 것은 어떨까? 생각하고 있던차라... 

MS가 비전에서 뭘 하겠어? OpenCV가 있는데... 라고 생각하며 별 관심이 없었다...

얼굴 인식해서 나이를 인식하는 것은...2011년의 KTH의 푸딩 얼굴 인식 앱도 되던 기능이며....
MS같은 대형 소프트웨어 회사가 해야 할 일은 아니지 않은가?

아니 얼굴 인식해서 그룹화하던것은 구글 피카사나... 어도비나...(최근에 좋아하는 라이트룸도 지원) 애플의 iPhoto들은 예전부터 하던 일이며... 성능이 어떻게 보면 괜찮은데... 어떻게 보면 또 굉장히 허접함을 알고 있어서...
(그냥 도움을 주는 정도?)

MS도 뭐하나 사진 관리 앱 만들었나 보네.... 하고 생각하며 말았는데..

저녁에 생각나서 다시 한번 찾아보니...생각 외로 다른 프로젝트더라.
최근 유행하는 나이 앱은 Project Oxford라는 프로젝트의 산물인데...

http://www.projectoxford.ai/

Project Oxford라는 놈이 SDK를 지원하는 프로젝트라는 점...

오옷 SDK?  재미 있는 것은 서드파티 서드파티 외치는 MS 가 먼일이래? 이것봐라...SDK라면 이야기가 살짝 달라진다.
(물론 어떤 서드파티 회사 몇 개는 죽어 나겠지만...)

현재.. SDK로 이 기능들을 제공하는 것은 별로 없다.(물론 유료는 많지만...이래 저래 정확도가 떨어지는 부분이 있는 것들이라... 믿을 만한지는 살짝 살짝 고민..)

구글 안드로이드 SDK의 얼굴 인식 수준은 사진에 얼굴이 있다 없다 혹은 어느 부분에 얼굴이 있다 이고..
화면 잠금을 푸는 얼굴 확인(
Recongnation) SDK는 제공하지 않는다.

이미지에 문자가 있으면.. 글자를 인식해서 텍스트 검색화 하는 것을 만들려고 생각하고 있었는데...
한글 OCR은 공개된 알고리즘도 적을 뿐더러... 비전으로 글자를 인식하려면... 공이 꽤나 들어가야 한다.

그런데 그것을 제공하겠다고? 시간 날 때 한번 더 자세히 살펴 봐야겠네...

간단히 보니 SDK는 총 3개이다.

Face , Speech, Vision

그 중 Face와 Vision이 조금 관심이 간다.
(Speech는 한국어도 없고.... 구글도 적당히 쓸만하다. 영어 데모를 봐서는 구글보다 괜찮은 점도 보이긴 하지만..)

기반도 .Net이라 맘에 든다. 안드로이드의 사상과 구글을 좋아하긴 하지만...안드로이드 개발을 해보면...
안드로이드의 SDK라는 것이 비주얼 스튜디오로 윈도우 소프트웨어를 개발하던.... 내 맘에는 별로 들진 않는다.
(그리고 다양한 제조사 별로 모두 특성이 다른 파편화 현상 역시 굉장히 싫어함)

그러나 실버라이트 C# .Net 개발 이후로 웹이건 PC 소프트웨어건 MS를 잘 쓰지 않은 것은 사실인데...
(솔루션 회사들은 쓰겠지만... 내가 지금 솔루션과 관계 없는 일을 하니...어쨋든 쓸 일이 별로 없다.)


어쨋든 http://www.projectoxford.ai/demo 를 보면...

Face Detection/Verification 사진이 많은 DB를 구별하는데... 도움이 될 것 같고...
아까도 말했지만 Speech에 해당하는 STT와 TTS는 패스....

Vision Feature Analysis는... 사진의 요소를 찾아준다 재미 있는 것은 성인 이미지인지도.. 점수로...
(물론. 가지고 있는 성인 이미지를 넣었더니... 아니라고 나오긴 한다. -.-)

Optical Character는 이미지에서 원문을 찾아준다. 한글 지원 오동작이 있긴 하지만... 서비스 용이 아닌 데이터 용으로는 충분해 보인다.

Vision Thumbnail 이건 페이스북이... 사진을 공유하면... 적당한 위치로 잘라주듯이 섬네일을 알아서 잘라주는 기능인 것 같아(예를 들면 인물 중심)

뭐 어쨌든 당분간 재미있는 장난감이 생겼으니... 틈틈히 개인 시간에 한번 보긴 해야겠다. 쓸데가 있는 녀석인지 아닌지... 그런데 환경은 Window 8.1에 비주얼 스튜디오 2013이라고? 쩝... 윈도우부터 깔아야겠네.. 이런 X....




   1: /// <summary>
   2:    /// FFMPEG을 이용해서 프레임을 추출함
   3:    /// FFMPEGManager Class 1.0
   4:    /// Program by kunmin00
   5:    /// </summary>
   6:    public class FFMpegManager
   7:    {
   8:        const int IMG_COUNT = 60;
   9:  
  10:        /// <summary>
  11:        /// FFMPEG 을 이용해서 프레임 추출하기 kunmin00
  12:        /// </summary>
  13:        /// <param name="mediaFileInfo"></param>
  14:        /// <returns></returns>
  15:        public static Boolean GrapImageFromMediafile(MediaFile mediaFileInfo)
  16:        {
  17:  
  18:            TimeSpan duration = mediaFileInfo.DurationTime;
  19:  
  20:            LogHelper.LogMessage("[FFMPEG 이미지 추출 시작] " + mediaFileInfo.FilePath);
  21:  
  22:            Process myProcess = new Process();
  23:            FileInfo mediafileinfo = new FileInfo(mediaFileInfo.FilePath);
  24:            string mediafilename = mediafileinfo.Name.Replace(mediafileinfo.Extension, "");
  25:  
  26:            string LogPath = Application.StartupPath +"\\Temp";
  27:  
  28:            GlobalFunction.Current_Mainform.ChangeProgressBar(0, IMG_COUNT);
  29:            //디렉토리 체크
  30:            if (!Directory.Exists(LogPath))
  31:            {
  32:                LogHelper.LogMessage("[템프 폴더 생성]");
  33:                Directory.CreateDirectory(LogPath);
  34:            }
  35:  
  36:            try
  37:            {
  38:                for (int i = 0; i < IMG_COUNT; i++)
  39:                {
  40:                    myProcess.StartInfo.UseShellExecute = false;
  41:                    // You can start any process, HelloWorld is a do-nothing example.
  42:                    myProcess.StartInfo.FileName = "FFMPEG\\ffmpeg.exe";
  43:                    TimeSpan time = TimeSpan.FromSeconds((duration.TotalSeconds / IMG_COUNT) * i + 1);
  44:                    myProcess.StartInfo.Arguments = "-ss " + GetTimeStringFromTimeSpan(time) + " -vframes 1 -i \"" + mediaFileInfo.FilePath + "\" -y -f image2 " + ".\\Temp\\" + mediafilename + "_" + time.TotalSeconds.ToString() + ".png" + " -threads 4 -an";
  45:                    myProcess.StartInfo.CreateNoWindow = true;
  46:                    myProcess.StartInfo.RedirectStandardOutput = false;
  47:                    myProcess.Start();
  48:  
  49:                    GlobalFunction.Current_Mainform.ChangeProgressBar((i+1) * 100 / IMG_COUNT, IMG_COUNT);
  50:                    LogHelper.LogMessage("[" + (i+1) + "번째 이미지 추출] " + mediafilename + "_" + time.TotalSeconds.ToString() + ".png");
  51:  
  52:                    myProcess.WaitForExit();
  53:  
  54:                    Thread.Sleep(1);
  55:             
  56:                }
  57:  
  58:                LogHelper.LogMessage("[FFMPEG 이미지 추출 종료] " + mediaFileInfo.FilePath);
  59:  
  60:                myProcess.Close();
  61:                myProcess = null;
  62:            }
  63:            catch (Exception ex)
  64:            {
  65:                ExceptionHelper.ShowException(ex);
  66:                return false;
  67:            }
  68:  
  69:            return true;
  70:        }
  71:  
  72:        public static String GetTimeStringFromTimeSpan(TimeSpan duration)
  73:        {
  74:            return duration.Hours.ToString("00") + ":" + duration.Minutes.ToString("00") + ":" + duration.Seconds.ToString("00");
  75:        }
  76:  
  77:    }

'Application Tech > C#,VB.NET' 카테고리의 다른 글

MS의 Project Oxford  (0) 2015.05.07

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\notepad]
@="URL:Notepad Protocol"
"AppUserModelID"="Hoon.Notepad"
"URL Protocol"="노트패드 열려라"

[HKEY_CLASSES_ROOT\notepad\DefaultIcon]
@="C:\\WINDOWS\\system32\\notepad.exe"

[HKEY_CLASSES_ROOT\notepad\shell]
@=""

[HKEY_CLASSES_ROOT\notepad\shell\open]
@=""

[HKEY_CLASSES_ROOT\notepad\shell\open\command]
@="C:\\WINDOWS\\system32\\notepad.exe \"%1\""

특정 프로토콜 URL을 만들 필요가 있었는데...

찾아보니 위와 같이 레지스트리에 등록해 주면 프로그램과 아규먼트로 넘어오더라

 위 테스트는 notepad://파일경로

 

'Application Tech' 카테고리의 다른 글

Openfire Server  (0) 2009.12.01

Openfire Server

Application Tech2009. 12. 1. 10:47
  • 제공 사이트 http://igniterealtime.org
  • 버전 3.6.4
  • XMPP(Extensible Messaging and Presence Protocol) 라는 인스턴트 메시지(IM) 표준 프로토콜 기반의 서버 프로그램
  • 인스턴트 메시지 어플리케이션 = 소위 “메신저”
  • JRE 1.5 기반의 Server 프로그램이며 예전 이름은 wildfire
  • GPL 라이선스 인 Open Source 프로젝트
  • Linux, Unix, MS Windows, Mac OS X 의 패키지 제공
  • JDBC 2.0 기반의 DBMS 지원(mySQL, Oracle, DB2, MSSQL 등)
  • Client Application 제공 - “Spark” 프로젝트
  • Web Client 제공 - “Spark Web”[플래시 기반] 프로젝트

 

Hardware Recommendations

Concurrent Users Recommendation
1-500 At least 384 MB of available RAM and one 1.5 GHz processor.
501-10,000 At least 768 MB of available RAM and one 3.0 GHz processor.
10,001-25,000 At least 1.5 GB of available RAM, two 3 GHz processors, and one connection manager on the same machine.

25,001-100,000

At least 2.0 GB of available RAM, two 3 GHz processors, and between 1 and 4 connection managers based on exact size, each on their own equivalent machine.

출저: http://www.igniterealtime.org/community/docs/DOC-1543

 

Spark & Spark Web Client

 

TABLE List

'Application Tech' 카테고리의 다른 글

특정 프로토콜 URL 만들기  (0) 2010.03.30

사용자 삽입 이미지
WPF 어플리케이션에서  흘러가는 글자를 만들기 위해서

흘러가는 글자를 스토리 보드로 만들어 봤습니다.

처음에 Margin을 조정하는것을 만들었는데요.
이게 웬일... 부하가 엄청나네요.

간단히
스토리보드에 Margin조절 하는것과 RanderTransform을 조정하는 두가지 샘플 프로그램을 짜보았습니다.

허걱

Margin을 조절하는것은 20~25% 정도 CPU 부하를 먹고
RanderTransform을 조절하는것은 1% 정도의 CPU 부하.
사용자 삽입 이미지
[Margin 조절 부하 20%]

사용자 삽입 이미지

[RenderX 0~1%]
이런....



'Application Tech > WPF' 카테고리의 다른 글

WPF 위에서 Web 브라우저 컨트롤 사용하기  (0) 2008.08.14
XAML Converter  (0) 2007.08.01

일단 링크만.....번역은 나중에 시간날때....

Using the New WPF-based Web Browser Control in .NET 3.5 SP1

'Application Tech > WPF' 카테고리의 다른 글

WPF - 흘러가는 TextBlock 하기 : 부하테스트  (0) 2008.09.08
XAML Converter  (0) 2007.08.01

ASP Base64
<%
Option Explicit

Dim sBASE_64_CHARACTERS, sBASE_64_CHARACTERSansi
sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
sBASE_64_CHARACTERSansi = strUnicode2Ansi(sBASE_64_CHARACTERS)

Function strUnicodeLen(asContents)
 Dim asContents1 : asContents1 ="a" & asContents
 Dim Len1  : Len1=Len(asContents1)
 Dim K  : K=0
 Dim I, Asc1
 
 For I=1 To Len1
  Asc1 = asc(mid(asContents1,I,1))
  IF Asc1 < 0 Then Asc1 = 65536 + Asc1
  IF Asc1 > 255 Then
   K = K + 2
  ELSE
   K = K + 1
  End IF
 Next
 
 strUnicodeLen = K - 1
End Function

Function strUnicode2Ansi(asContents)
 Dim Len1   : Len1 = Len(asContents)
 Dim I, VarCHAR, VarASC, VarHEX, VarLOW, VarHIGH

 strUnicode2Ansi = ""
 
 For I = 1 to Len1
  VarCHAR = Mid(asContents,I,1)
  VarASC = Asc(VarCHAR)
  IF VarASC < 0 Then VarASC = VarASC + 65536
  IF VarASC > 255 Then
   VarHEX  = Hex(VarASC)
   VarLOW  = Left(VarHEX,2)
   VarHIGH  = Right(VarHEX,2)
   strUnicode2Ansi = strUnicode2Ansi & ChrB("&H" & VarLOW ) & ChrB("&H" & VarHIGH )
  Else
   strUnicode2Ansi = strUnicode2Ansi & ChrB(VarASC)
  End IF
 Next
End Function

 

Function strAnsi2Unicode(asContents)
 Dim Len1   : Len1  = LenB(asContents)
 Dim VarCHAR, VarASC, I

 strAnsi2Unicode = ""
 
 IF Len1=0 Then Exit Function
 
 For I=1 To Len1
  VarCHAR = MidB(asContents,I,1)
  VarASC = AscB(VarCHAR)
  IF VarASC > 127 Then
   strAnsi2Unicode = strAnsi2Unicode & Chr(AscW(MidB(asContents, I+1,1) & VarCHAR))
   I  = I + 1
  Else
   strAnsi2Unicode = strAnsi2Unicode & Chr(VarASC)
  End IF
 Next
 
End function

Function Base64encode(asContents)
 Dim lnPosition
 Dim lsResult
 Dim Char1
 Dim Char2
 Dim Char3
 Dim Char4
 Dim Byte1
 Dim Byte2
 Dim Byte3
 Dim SaveBits1
 Dim SaveBits2
 Dim lsGroupBinary
 Dim lsGroup64
 Dim M3, M4, Len1, Len2

 Len1   =LenB(asContents)
 
 IF Len1 < 1 Then
  Base64encode = ""
  Exit Function
 End IF

 M3=Len1 Mod 3
 
 IF M3 > 0 Then asContents = asContents & String(3 - M3, ChrB(0))

 IF m3 > 0 Then
  Len1 = Len1 + (3 - M3)
  Len2 = Len1 - 3
 Else
  Len2 = Len1
 End IF

 lsResult = ""

 For lnPosition = 1 To Len2 Step 3
  lsGroup64 = ""
  lsGroupBinary = MidB(asContents, lnPosition, 3)

  Byte1  = AscB(MidB(lsGroupBinary, 1, 1)) : SaveBits1 = Byte1 And 3
  Byte2  = AscB(MidB(lsGroupBinary, 2, 1)) : SaveBits2 = Byte2 And 15
  Byte3  = AscB(MidB(lsGroupBinary, 3, 1))

  Char1  = MidB(sBASE_64_CHARACTERSansi, ((Byte1 And 252) \ 4) + 1, 1)
  Char2  = MidB(sBASE_64_CHARACTERSansi, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1)
  Char3  = MidB(sBASE_64_CHARACTERSansi, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1)
  Char4  = MidB(sBASE_64_CHARACTERSansi, (Byte3 And 63) + 1, 1)
  lsGroup64 = Char1 & Char2 & Char3 & Char4

  lsResult  = lsResult & lsGroup64
 Next

 IF M3 > 0 Then
  lsGroup64 = ""
  lsGroupBinary = MidB(asContents, Len2 + 1, 3)

  Byte1  = AscB(MidB(lsGroupBinary, 1, 1)) : SaveBits1 = Byte1 And 3
  Byte2  = AscB(MidB(lsGroupBinary, 2, 1)) : SaveBits2 = Byte2 And 15
  Byte3  = AscB(MidB(lsGroupBinary, 3, 1))

  Char1  = MidB(sBASE_64_CHARACTERSansi, ((Byte1 And 252) \ 4) + 1, 1)
  Char2  = MidB(sBASE_64_CHARACTERSansi, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1)
  Char3  = MidB(sBASE_64_CHARACTERSansi, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1)

  IF M3=1 Then
   lsGroup64 = Char1 & Char2 & ChrB(61) & ChrB(61)
  Else
   lsGroup64 = Char1 & Char2 & Char3 & ChrB(61)
  End IF

  lsResult  = lsResult & lsGroup64
 End IF

 Base64encode = lsResult
End Function

Function Base64decode(asContents)
 Dim lsResult
 Dim lnPosition
 Dim lsGroup64, lsGroupBinary
 Dim Char1, Char2, Char3, Char4
 Dim Byte1, Byte2, Byte3
 Dim M4, Len1, Len2

 Len1 = LenB(asContents)
 M4 = Len1 Mod 4

 IF Len1 < 1 Or M4 > 0 Then
  Base64decode = ""
  Exit Function
 End IF

 IF MidB(asContents, Len1, 1) = ChrB(61) Then M4 = 3
 IF MidB(asContents, Len1-1, 1) = ChrB(61) Then M4 = 2

 IF M4 = 0 Then
  Len2 = Len1
 Else
  Len2 = Len1 - 4
 End IF

 For lnPosition = 1 To Len2 Step 4
  lsGroupBinary = ""
  lsGroup64 = MidB(asContents, lnPosition, 4)

  Char1  = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 1, 1)) - 1
  Char2  = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 2, 1)) - 1
  Char3  = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 3, 1)) - 1
  Char4  = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 4, 1)) - 1

  Byte1  = ChrB(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF)
  Byte2  = lsGroupBinary & ChrB(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF)
  Byte3  = ChrB((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63))
  lsGroupBinary = Byte1 & Byte2 & Byte3

  lsResult  = lsResult & lsGroupBinary
 Next

 IF M4 > 0 Then
  lsGroupBinary = ""
  lsGroup64 = MidB(asContents, Len2 + 1, M4) & ChrB(65)
  IF M4=2 Then
   lsGroup64 = lsGroup64 & chrB(65)
  End IF
  Char1 = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 1, 1)) - 1
  Char2 = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 2, 1)) - 1
  Char3 = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 3, 1)) - 1
  Char4 = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 4, 1)) - 1

  Byte1 = ChrB(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF)
  Byte2 = lsGroupBinary & ChrB(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF)
  Byte3 = ChrB((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63))

  IF M4=2 Then
   lsGroupBinary = Byte1
  elseIF M4=3 Then
   lsGroupBinary = Byte1 & Byte2
  end IF

  lsResult   = lsResult & lsGroupBinary
 End IF

 Base64decode   = lsResult
End Function

 


Dim ORIGNvalue : ORIGNvalue = "mTVisman123456"
Dim EncodeA : EncodeA = StrReverse(strAnsi2Unicode(Base64encode(strUnicode2Ansi(ORIGNvalue))))
Dim DecodeA : DecodeA = strAnsi2Unicode(Base64decode(strUnicode2Ansi(StrReverse(EncodeA))))

response.write "[" & DecodeA & "] was encoded to [" & EncodeA & "]<BR>"
response.write "[" & EncodeA & "] was decoded to [" & DecodeA & "]<BR>"
%>



PHP Base64
<?
$Str = 'mTVisman123456';
$Test = base64_encode($Str);
$TestD = base64_decode($Test);
printf($Test.$TestD);
?>


JSP Base64
<%@ page import="java.net.*, java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.lang.*" %>
<%@ page import="java.lang.String" %>
<%@ page import="java.security.*" %>
<%@ page import="sun.misc.BASE64Encoder" %>
<%@ page import="sun.misc.BASE64Decoder" %>
<%
        BASE64Encoder encoder = new BASE64Encoder();
        BASE64Decoder decoder = new BASE64Decoder();

        String StrOUT, Reversing;
        byte[] b1, CookieString;


 
  String Test = "
=YTN0@j@x4WYtN*aWRVb";

  Reversing = new StringBuffer(Test).toString();
        CookieString = decoder.decodeBuffer(Reversing);

        StrOUT = new String(CookieString, "ISO-8859-1");

  out.println("[" + StrOUT + "] was decoded to [" + Test + "]<br>");
        out.println("[" + Test + "] was decoded to [" + StrOUT + "]");
%>


출저:http://cafe.naver.com/webexploit/3

에러 원인: 함수구현 부분에도 세미콜론을 붙인 경우..


함수 prototype에는 ;(세미콜론)을 사용한다.

ex)

void add(int ,int ); -> 세미콜른을 붙여야한다.

void main()
{
    int sum;

    sum = add(10,20);
}

void add(int x,int y); <- 함수구현 부분에도 세미콜론을 붙인 경우..
{
    return x+y;
}

 

출저: http://zeronova.egloos.com/1209718

'Application Tech > C,C++' 카테고리의 다른 글

플랫폼 SDK를 깔아도 Iphlpapi.h가 오류가 날때  (2) 2008.02.21

Iphlpapi.h 에서 아래와 같은 오류가 날때

--------------------Configuration: EINet - Win32 Release--------------------
Compiling...
INetE.cpp
C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\Iphlpapi.h(183) : error C2065: 'PMIB_ICMP_EX' : undeclared identifier
C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\Iphlpapi.h(183) : error C2146: syntax error : missing ')' before identifier 'pStats'
C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\Iphlpapi.h(183) : warning C4229: anachronism used : modifiers on data are ignored
C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\Iphlpapi.h(185) : error C2059: syntax error : ')'
Error executing cl.exe.

EINet.dll - 3 error(s), 1 warning(s)

Hi, I had the same problem. In SDK is new Iprtrmib.h which define PMIB_ICMP_EX. But in path for include in VC I had first path to directory whith old Iprtrmib.h (originally in VC6) without PMIB_ICMP_EX. You must replace Iprtrmib.h or change path. Jirka

출처 : 구글 검색

Maya To XAML Converter
http://www.highend3d.com/maya/downloads/tools/3d_converters/Maya-To-XAML-3782.html

For 2D: Jonas Beckeman's PSD to XAML Converter
http://flowlabs.net/psd2xaml.aspx

Online converter from 3ds to xaml
http://www.wpf-graphics.com/Converter.aspx

Fred Vandervelde's DWG/DXF to XAML Conversion Toolkit (D2X)
http://www.codeplex.com/Wiki/View.aspx?ProjectName=DWG2XAML

A freely available plug-in that enables Adobe® Illustrator® to export WPF and WPF/E compatible XAML
http://www.mikeswanson.com/XAMLExport/

A free tool that converts Adobe/Macromedia Flash files to XAML
http://www.mikeswanson.com/swf2xaml/

Fireworks to XAML Converter June 1st, 2006
http://www.granthinkson.com/?p=35

XAML/HTML Converter
http://wpf.netfx3.com/files/folders/developer/entry816.aspx

ZAM 3D - 3D XAML Tool (and 3ds & dxf to XAML converter)
http://www.erain.com/products/zam3d/DefaultPDC.asp

LightWave 3D to Xaml Converter
http://blogs.msdn.com/danlehen/archive/2006/07/22/675067.aspx

출저:미래를 그리고 표현하는 Microsoft XAML, 그 한계는 어디인가?

작은시내군과 플래시 작업할게 있어서 급하게 파라메터 테스트를 하나 만들어 봤다.

혹시라도 이용하실 분이 있을까? 싶어서 올려 봄.