블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2809)
Unity3D (865)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (234)
협업 (61)
3DS Max (3)
Game (12)
Utility (140)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

Library File :




DEVIL.NET has been included in the main DEVIL distribution

Go to the DevIL image library website for the entire package. Here after you can find the older releases and, when a new one will get released, the newer ones.

WHAT IS DEVIL.NET ?

I’ve written a small wrap around the DevIL image library .

As for the .NET viewer, this is a “2 hour project” – that is a project I’ve written in 2 hours before going to sleep.. so no warranty is included! ;)

NOTE : This project is intentionally minimalist. If you want a more complete wrapper over DevIL, have a look at the Tao.Framework.

It allows any .NET program (VB.NET, C#, etc) to open and save files in all formats supported by the DevIL library. Also it opens them as System.Drawing.Bitmap objects, so that it works optimally with existing code.

As now it supports loading in bmp cut dcx dds ico gif jpg lbm lif mdl pcd pcx pic png pnmpsd psp raw sgi tga tif wal act pal and Doom graphics

And saving in : bmp dds jpg pcx png pnm raw sgi tga tif pal

Using it is simple.

As an example you can load/save a picture in a picturebox using (C# and VB.NET):


// C#
System.Drawing.Bitmap bmp = DevIL.DevIL.LoadBitmap(filename);
pictureBox1.Image = bmp;

‘ VB.NET
Dim bmp as System.Drawing.Bitmap
bmp = DevIL.DevIL.LoadBitmap(filename)
pictureBox1.Image = bmp

And you can save the picturebox image using :


// C#
System.Drawing.Bitmap bmp = (System.Drawing.Bitmap)pictureBox1.Image;
DevIL.DevIL.SaveBitmap(filename, bmp);

‘ VB.NET
Dim bmp as System.Drawing.Bitmap
bmp = pictureBox1.Image
DevIL.DevIL.SaveBitmap(filename)
LICENSE & VERSION
C++.NET (Managed C++) Source is included and released under a choice of BSD or LGPL license. You can contact me for additional licensing options if you need them. Binaries are provided in the package, compatible with every version of .NET Framework (from 1.0 to 3.0).
SAMPLES
You can download samples for DevIL.NET library. The sample program is a small utility which acts as a viewer and a converter of image files, written in both C# and VB.NET.

RELEASE NOTES
I’ve done many tries and it seems the stride in .NET framework for 32bit images is always 4*width. While this can be expected, effectively the stride could have any value. As now the code relies heavily on a predictable stride to optimize memory copies.. please report me any bug (marcoPLEASEDELTHIS@mastropaolo.com), especially if you think a different stride is in place.

UPDATES

  • March 4th, 2007 : Release Version 1.3
  • July 12th, 2005 : Fixed a minor bug in initialization, uploaded samples
  • August 23th, 2005 : Release Version 1.1
  • December 8th, 2004 : Release Version 1.0

VERSION 1.1 CHANGES

  • Fixed a bad bug when loading non true color images (above all GIFs)
  • Implemented a new LoadBitmapAndScale which allows for the bitmap to be scaled directly in DevIL.NET
  • Started to implement some error handling…
  • note: From version 1.1, DevIL.NET may require ILU.dll to be installed in addition to DevIL.DLL. Since having an additional DLL is always a burden, ILU.dll is loaded dinamically and it’s not required unless the scale/resize feature is used ;)

VERSION 1.2 CHANGES

  • Support for VS2005, .NET Framework 2.0 on x86 platforms
  • NOTE : When using Devil.NET 1.2 on VS2005, remind to set your projects to use the x86 CPU. Otherwise the program may fail to run on x64 platforms.

VERSION 1.3 CHANGES

  • Fixed the infamous vertical flip bug
  • The v-flip can be done both in ILU code or .NET framework (depending on whether ILU.DLL has been loaded or not; you can load ILU.DLL either by loading an image with scale options or through the LoadILU method).
  • A DevIL.NET2.DLL exists. This is a framework 2.0/3.0 only version which is just a bit smaller than the “every” framework version.

Download Library Version 1.3
Download Library Version 1.2
Download Library Version 1.1
Download Library Version 1.0
Download VC++ sources and project
Download C# and VB.NET Samples
View the source online

반응형
Posted by blueasa
, |

WPF 강좌 링크

Programming/WPF / 2012. 3. 7. 01:44
배워 보세~

링크 :   http://dotnetmvp.tistory.com/22
반응형
Posted by blueasa
, |

최근 만들고 있는 프로그램에 사용할 음성재생 라이브러리를 이것저것 살펴보다가..

WMPLib, MBroMP3, DirectX.AudioVideoPlayback 이렇게 3가지를 놓고 상당한 고민을 했습니다.

이것저것 살펴본결과, 직접 구현하면서 사용하기에는 DirectX.AudioVideoPlayback이 수월해보여 이녀석으로 결정했습니다.

기념으로 DirectX.AudioVideoPlayback을 사용해서 간단하게 음성파일 재생을 구현해 보도록하겠습니다.

 

Microsoft.DirectX.AudioVideoPlayback을 사용하면 생각보다 간편하게 기능을 구현할 수 있습니다만..

.NET 1.1에서 구현된 녀석들을 .NET 2.0에서 사용하면 등장하는 문제인 LoaderLock 버그가 여기에도 존재합니다.

차근차근 구현하고.. 이 LoaderLock이 등장하지 않도록 하는 것까지 오늘은 알아보도록 하겠습니다.

 

우선 가장 먼저 해야할 일은 이 녀석을 사용하기 위한 준비과정이 되겠죠?

아래 그림처럼 참조추가의 .NET탭에서 Microsoft.DirectX.AudioVideoPlayback 항목을 선택해줍니다.


 

 

그러면 솔루션 탐색기에서 추가된 참조를 확인할 수 있습니다.

이녀석을 더블클릭해서 개체 브라우저로 잠시 우리가 사용할 녀석을 확인해보도록하지요.

 


이처럼 설명도 모두 나와있으니, 참고하시면 되겠습니다.

기본적으로 필요한 메소드와 프로퍼티는 모두 제공하고 있으므로 생각보다 쉬울 것 같습니다.

 

간단하게 폼이 로드되면 재생되는 코드를 만들어 볼까요?


그림과 같이 사용하시면 해당 경로의 음악파일을 자동으로 재생합니다. 두 번째 인자를 false로 주면 자동 재생은 안되죠.

이 외에 필요시에는 Play()나 Open()메소드를 이용하시면 되겠습니다.

 

이렇게 했지만.. 아마도 막상 시작을하면 LoaderLock예외가 발생하면서 프로그램이 중단될 것입니다.

아래와 같이 하면.. 완전히 해결하는 것은 아니지만, 프로그램이 죽지않게 할 수 있습니다.

(제가 알고 있는 완벽하게 해결하는 방법은 .Net Framework 1.1을 설치하는 것입니다.)

 

디버그 -> 예외 -> Managed Debugging Assistant -> LoaderLock의 Throw속성을 체크해제합니다.


 

 

LoaderLock예외를 이렇게 처리하고나면 이녀석을 컨트롤과 연결시켜서 사용자의 요구에 따라서 동작하는

재생프로그램을 만들고 싶으실지도 모르겠습니다.

재생시간이나 볼륨을 TrackBar와 연동시키고 싶다면.. TrackBar를 생성하고 TrackBar의 ValueChanged이벤트가

발생했을 때, 해당 Value를 받아와서 수행시키게하고... 재생, 중지등에 대한 적절한 이미지를 만들어 주고, 이 녀석들에 대한 Click이벤트를 Stop(), Pause()등의 메소드들과 연결하시면 되겠습니다.

 

 

문제는 재생중에 재생시간에 대한 TrackBar를 움직여야 한다는 점인데요. 이 부분은 쓰레드로 해결을 하는 수밖에 없겠지요.

Invoke를 사용해서 한다면 특별한 문제점은 없을거라고 생각합니다만..

처음에 언급했던 너무 완벽한 버그인 LoaderLock때문에 문제점이 발생하지 않을지는 저도 해보아야 알것 같습니다.

이 부분은 해보고 빠른 시일내에 이 글을 수정하는 식으로 업데이트하도록 하겠습니다.

 -> 확인결과 이상없이 잘 수행됩니다.

 

 

 

이로써 간단하게 음악파일을 재생할 수 있는 기능을 살펴보았습니다.


 
[출처] 〃C# DirectX.AudioVideoPlayback를 이용한 음성파일 재생.|작성자 Chuls

반응형
Posted by blueasa
, |

C#에서 DirectX를 활용하여 Wave파일을 재생하기 위해서는

새로운 참조를 추가해야 한다...

 

 

 

참조 추가 창에서 .NET 텝을 선택한 후 다음의 두 가지 구성요소를 선택한다.

 

      - Microsoft.DirectX

      - Microsoft.DirectX.DirectSound

 

 

 

참조 추가가 완료되면 솔루션 탐색기의 참조 리스트에 나타나게 된다.

 

 

 

그런 다음 소스 코드에 필요사항을 기입한다.

 

// 해당 참조 포함하기

using Microsoft.DirectX;

using Microsoft.DirectX.DirectSound;

 

// Device 생성자와 Buffer 선언 : Form1 클래스

private Device dsDevice = null;
private SecondaryBuffer buffer = null;

 

// Device 선언 및 설정 : InitializeComponent() 하위
dsDevice = new Device();
dsDevice.SetCooperativeLevel(this, CooperativeLevel.Normal);

 

// 실제 재생 부분

buffer = new SecondaryBuffer("sample.wav", dsDevice);
if(dsDevice != null) buffer.Play(0, BufferPlayFlags.Default);

 

 

DirectX를 활용하여 Wave파일을 재생하면

Winmm.dll API를 사용할 때와 달리 중복하여

Wave파일을 재생할 수 있다.


출처 : http://blog.naver.com/hero_juni/90034144815
반응형
Posted by blueasa
, |
public class dgv : DataGridView
{
protected override bool ProcessDialogKey(Keys keyData)
{
Keys key = (keyData & Keys.KeyCode);
if (key == Keys.Enter)
{
return this.ProcessRightKey(keyData);
}
return base.ProcessDialogKey(keyData);
}
protected override bool ProcessDataGridViewKey(KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
return this.ProcessRightKey(e.KeyData);
}
return base.ProcessDataGridViewKey(e);
}
}



반응형
Posted by blueasa
, |
브레이크 포인트 (중단점) 걸고 디버깅 할려 할 때

빨간 동그라미가 투명해지면서 

'중단점이 현재 적중되지 않습니다.  소스 코드가 원래 버전과 다릅니다' 
되는 경우가 종종 생깁니다.


= 방법 ==================================


해당 소스파일을 '저장 고급옵션' 누르시고 유니코드 65001 로 저장 해주세요.


옵션에서 소스코드가 달라고 그냥 디버깅 하기 체크도 되지만 그건 좀 찝찝하죠잉.




출처 : 
http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_Lecture&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=last_comment&desc=desc&no=241  
반응형
Posted by blueasa
, |



출처 : http://iutopia.info/bbs/board.php?bo_table=to_forum&wr_id=12475&page=0&sca=&sfl=&stx=&spt=0&page=0&rand=1329553671&cwin=#c_12541
반응형
Posted by blueasa
, |

업무 평가 하기

Etc / 2012. 2. 15. 13:36
 과연 개발자의 업무 평가를 제대로 하는 것이 가능할 것인가라는 주제는 논의가 많습니다. 그럼 반대로 '개발자의 업무평가를 하지 않는 것은 가능할까'라는 질문을 해보면 어떨까요? 

 아마도 초조해 하시는 분들은 관리자들일 확률이 클겁니다. 인사고과도 매겨야 되는데 어떻게 하란 말인가라고 말이죠. 반면에 일반 개발자들은 그냥 평범할 수도 있을 겁니다. 대부분 그런 것과 상관 없이 일해왔을 확률이 크기 때문입니다. 

 어떤 조직은 '일정 준수'에 대해 책임을 묻겠다는 조직이 있긴 합니다만, 하나 궁금한 것이 있습니다. 그 일정 엔지니어들이 잡은 것인가요? 책임을 진다는 것은 그 의사 결정에 참여해야 의미가 있습니다. 만약에 엔지니어가 잡지 않은 일정에 대해 책임을 지라 하고 고과를 매기겠다면 이것은 남이 변을 보다 말았으니 네가 보시라는 것과 똑같은 이야깁니다. (쾌변하세요, 꼭.)

 제가 이런 이야기를 하는 이유는 이렇습니다. 개발 업무의 특징은 집단으로 하는 공학이란 겁니다. 솔직히 다소 '집단예술'에 가까운 일입니다. 한 사람이 특출나게 뭔가 잘해서 되는 경우보다는 같이 '협력'해서 얻어지는 이익이 많습니다. 그렇다면 그 '협력'이 바로 이른바 '황금알을 낳는 거위'인데 이 거위에게 어떻게 먹이를 주시겠습니까? 
 
곶감이 잘 되려면 감나무 혼자 퇴비 많이 먹는다고 되는게 아닙니다. 날씨와 사람의 노력 모두가 잘 되어야 하는 것입니다. 


 협력을 깨는 보상/평가는 차라리 안해야 합니다. 그럼 아무것도 안하고 있으면 될까요? 아닙니다. 바로 그 협력의 '단위'를 보상하는 겁니다. 팀에 대한 보상을 키우고 팀간의 협력으로 일군 성과에 대해 더 가치있게 평가하라는 것입니다.

 그럼 누구를 승진시킬것인가를 놓고 또 머리 쓰실 분들이 있을 것입니다. 하지만 이미 팀에서는 알고 있을 겁니다. 와인버그의 말 대로 '모든 사람이 문제 해결에 참여하게 해주는 사람이 리더'입니다. 그리고 이미 팀은 그 사람을 알고 있습니다. 관리자만 모를 공산이 크지요. 

 그러한 사람들의 헌신을 무시하거나 혹은 모른척한다면 아마 인력이 썰물 빠지듯 빠질겁니다. 어떤 회사는 매년 업무실적을 평가하는데 늘 일부러 '깍아'주는 문화가 회사안에 있었습니다. 무언가 한것보다는 못한 것을 더 찾아서 고과를 깍는 식으로 평가를 준겁니다. 결과는 매년 1/4정도의 인력이 물갈이 되었고 무엇보다 이들이 나가면서 한번도 후임자에게 제대로 업무인수 인계를 한 적이 없었습니다. 모든 업무의 지연은 물보듯 뻔했습니다. 

 냉정한 평가를 내려야만 하는 순간이 있겠지요, 그렇지만 냉정한 평가는 스스로 하게 해야 합니다.인사고과를 깍는 식의 평가보다는 차라리 조직의 회고문화를 통해 스스로 교정해나가게 하는 것이 더 효과가 있습니다. 잘못한 사람은 이미 자신의 잘못을 알고 있는 경우가 많습니다. 다만 이를 스스로 부정하는 사람과 인정하고 고치는 사람이 있습니다.  

 그렇게 하지 못할 바에는 차라리 후하게 점수를 줘서 기분좋게 하는게 낫습니다. 서로 높은 에너지를 가진 상태에서 '우리 그런데 좀 개선할 바는 없나?'라고 서로 이야기 하게 해서 스스로 조직이 문제를 해결할 수 있는 힘을 길러줘야 할 것입니다. 

 이 때 반드시 필요한 것은 '다른 시선'이 필요합니다. 개인적으로는 시뮬레이션을 하되 회사 밖의 조직이라든가 혹은 다른 부서의 사람들을 놓고 팀을 관찰하는 역할을 맡겨서 하는 것도 좋은 방법일 것입니다. 


 간단히 정리하자면 이렇습니다. 
 - 개발자가 공언한 일정/계획이 아닌 것에 대해서는 고과를 매길 수 없습니다. 매기는 순간 그 개발자는 다른 회사사람이 됩니다. 
 - 협력을 증진시키는 방식으로 고과를 매기는 것이 좋습니다. 팀단위로 고과를 매겨보십시오. 그중 승진 대상자는 그 팀의 협력을 증진시키거나 효과를 높인 사람을 찾아 하면 됩니다. 
-  조직이 에너지를 얻은 상태에서 스스로를 돌아 볼 수 있는 자리를 만들어 주십시오. 시뮬레이션 같은 방법을 이용하시길 권합니다. 이 때 타 조직의 사람들이 관찰을 해주고 그 이야기를 들을 필요가 있습니다. 

 p.s: 글을 올린 이후 우연하게도 최동석 경영연구소장님의 blog인 mindprogram을 알게 되었습니다. 제가 생각했던 아이디어를 매우 '근거' 있게 만들어주실 만한 글이 올라왔네요. ^^  계량화가 유행병처럼 번지다 무엇을 계량화 해야 할 지, 혹은 하지 말아야 할지 구분을 해야 겠지요. 



반응형
Posted by blueasa
, |

Anti 'Shut Down'

Etc / 2012. 2. 8. 14:20
반응형
Posted by blueasa
, |
반응형

'Etc' 카테고리의 다른 글

업무 평가 하기  (0) 2012.02.15
Anti 'Shut Down'  (1) 2012.02.08
배터리 충전 방법  (2) 2011.12.06
[펌] 자랑스러운, 위대한 대한민국 史  (0) 2011.11.16
[펌] 파랑새 신드롬  (0) 2011.11.16
Posted by blueasa
, |