전체 글(195)
-
VB.NET 이미지를 가로/세로 비율에 맞춰서 원하는 크기로 리사이즈
아래 소스는 이미지의 가로사이즈를 기준으로 800보다 큰 이미지만 비율에 맞춰서 리사이즈 하는 소스이다. VB.NET에서 이미지를 다루는건 VB6에서 다루는것보다 훨씬 쉽다. 대신에 지원하는 라이브러리를 알아야 하는 단점이 있기는 하다. Public Function ResizeImage(pImageArr() As Byte) As Byte() Dim lpArr() As Byte = {} Dim lpWidth, lpHeight As Integer Try Dim lpStream As Stream = New MemoryStream(pImageArr) Dim src = New Bitmap(lpStream) lpStream.Close() If src.Width > 800 Then lpWidth = 800 lpHei..
2022.12.05 -
사진을 음악으로 연주하면 어떤 소리가 날까?
사진을 음악으로 연주하면 어떤 소리가 날까? 사실 단순한 궁금증에서 시작했다. 색깔과 음을 매칭시키면 사진을 연주할 수 있지 않을까? 혹은 음악을 그릴 수 있지 않을까? 음악은 음표로 그릴 수 있지만, 일반 사진으로 그릴수는 없을까? 사진을 음악으로 변환하면 암호화 기능을 수행할 수도 있지 않을까? 이걸 AI와 접목시켜서 학습시키면 듣기좋은 음악으로 만들어낼 수 있지 않을까? 어떤 사진이냐에 따라 클래식부터 발라드, 댄스, 트로트까지 변환 할 수 있지 않을까? 그 답을 찾기 위해 세상에 없는 음악을 찾아서 떠나는 긴 항해의 첫걸음을 시작해본다. 일단은 가장 단순하게 시작하자. 1대1 매칭으로 특정 색을 특정 음과 매칭시켜보자. 그 결과 이런 음악이 연주가 되네. https://youtu.be/xOATr9..
2022.12.05 -
VB.NET 간단한 후킹을 통해 단축키 생성하기
VB.NET 간단한 후킹을 통해 단축키 생성하기 내가 만든 프록그램이 forground이든 background이든 관계없이, 다른 프로그램이 윈도우 포커스를 갖고 있다고 해도 윈도우 어디서든 내가 만든 단축키를 누르면 내 프로그램이 실행되도록 만들 수 있다. 아래 소스는 가장 기본이 되는 부분만 추가하여 Ctrl+B를 누르면 어디서든 내 프로그램 안에 있는 버튼이 눌려지게 만든 간략한 소스이다. 아쉬운 순간이 있으니 필요할때마다 참고하자. 기본 윈도우 form 프로젝트에 버튼하나 (Button1)만 올려놓고 아래 소스를 그대록 복붙하면 된다. Public Class FormMain Declare Function RegisterHotKeyA Lib "user32" Alias "RegisterHotKey" ..
2022.11.29 -
[VB.NET 2022] JSON Parsing - JSON을 파싱해보자.
JSON을 파싱하는건 예전 VB6 시절에는 상당히 번거로운 일이었다. 그냥 문서의 처음부터 루프를 돌며 하나씩 분리해서 이름과 값을 직접 때려넣어야 가능한 일이었으니 말이다. 예를 들어 아래 정말 간단한 JSON을 파싱할때 VB6과 VB.NET의 파싱이 어떻게 다른지 보자. { "str_name1" : "str_value1", "str_name2" : "str_value2" } VB6에서 파싱 Private Function JsonParse_VB6(pSrc As String, pName As String) As String Dim lpIdx1 As Integer, lpIdx2 As Integer, lpIdx3 As Integer, lpIdx4 As Integer, lpRet As String lpRet ..
2022.11.21 -
VB.NET에서의 변수 선언
VB.NET은 기존 VB6에 비해 정말 많이 변했지만 그중 변수선언의 유연함이 아주 맘에 든다. C#과 호환을 위해서 그랬겠지만 어찌됐건 많이 좋아졌다. 도대체 뭐가 변했을까? 필자가 아는 한도내에서 하나씩 차근차근 알아보자. 1. 기본 - 기본은 기존 VB6이랑 동일하다. Dim strVar As String 그냥 변수 하나를 선언하면 된다. 사실 이렇게만 사용해도 상관없겠지만 뭔가 아쉬움이 남는데 두개 연속으로 선언하면 어떨까? 2. 동일한 형으로 두개 이상의 선언 Dim strVar1, strVar2 As String 여기서 벌써 VB6과의 차이점이 생겼다. VB6에서 위와같이 선언하면 myVar1은 Variant형으로, myVar2는 String형으로 선언됐다. 참 말도 안되지만 그땐 그랬다. 여..
2022.11.15 -
VB.NET에서의 타이머(Timer) 사용시 주의사항
VB.NET에서의 타이머(Timer) 사용시 주의사항 좀전에 크롬익스텐션에서도 설명했는데 타이머는 어떤 언어든 어떤 환경이든 관계없이 무조건 지켜야할 규칙이 있다. 바로 타이머를 호출하면 반드시 꺼줘야 한다는 것이다. 타이머는 항상 [켜기 -> 끄기 -> 작업 -> 다시 켜기] 이과정이 반복되어야 원치않는 오동작을 막을 수 있고, 안정적으로 오래오래 사용할 수가 있다. VB.NET은 VB6에 비해서 멀티테스킹이나 여러 기능들이 많이 있지만, 그래도 VB 사용자는 본능적으로 타이머를 더 자주 쓴다. 필자도 웬만한 프로젝트는 타이머로 흐름을 제어하는 편이다. 아무리 강조해도 지나치지 않으며, 차는 달리는것보다 멈추는게 중요하듯 타이머는 켜는것보다 끄는게 훨씬 중요하니 반드시 기억하자. 여기에 중요한 내용을 ..
2022.11.14