Thursday, April 2, 2015

Android EGL extensions 지원 목록 확인하기

EGL10 egl = (EGL10) EGLContext.getEGL();
EGLDisplay display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);

int[] version = new int[2];
egl.eglInitialize(display, version);

Log.d(TAG, "EGL vendor: " + egl.eglQueryString(display, EGL10.EGL_VENDOR));
Log.d(TAG, "EGL version: " + egl.eglQueryString(display, EGL10.EGL_VERSION));

Log.d(TAG, "EGL extensions: " + egl.eglQueryString(display, EGL10.EGL_EXTENSIONS));

C# PNG 이미지 확대 에러

PNG이미지를 Image 포맷으로 읽을경우 자체적으로 생성한 Bitmap과 Resolution이 달라서 이미지 복사할 경우에 의도치 않은 이미지 확대가 일어나는 경우가 있다.

다음은 그러한 경우이다.
아래와 같이 똑같은 크기로 이미지를 생성하고 복사를 하여도 이미지는 확대가 되어 복사가 된다.
            Image image = ToolManager.rawRenderer_.pictureBoxRaw.Image;
            Bitmap frameBitmap = new Bitmap(image.Width, image.Height);
            Graphics g = Graphics.FromImage(frameBitmap);
            g.Clear(Color.White);
            g.DrawImage(image, 0, 0, new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);

이유를 살펴보았더니 VerticalResolution, HorizontalResolution이 image의 값과 frameBitmap의 값이 서로 75, 96으로 달라서 발생했다. 이는 PNG이미지의 경우 resolution이 75인 파일도 있고 96인 파일도  있어서 그렇다.

그래서 아래와 같이 resolution을 frameBitmap쪽으로 통일을 시키면 DrawImage시 안전하게 확대가 일어나지 않고 복사할수 있다.
            Bitmap imageBitmap = image as Bitmap;
            imageBitmap.SetResolution(frameBitmap.HorizontalResolution, frameBitmap.VerticalResolution);


C# 프로세스별 CPU 사용률 구하기

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.Management;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            GetProcesses();
        }
        public static void GetProcesses()
        {
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PerfFormattedData_PerfProc_Process");

            StreamWriter SW;
            SW = File.CreateText("c:\\MyTextFile.txt");
            foreach (ManagementObject queryObj in searcher.Get())
            {
                SW.Write("Name: {0} ", queryObj["Name"]);
                SW.Write("ProcessID: {0} ", queryObj["IDProcess"]);
                SW.Write("Handles: {0} ", queryObj["HandleCount"]);
                SW.Write("Threads: {0} ", queryObj["ThreadCount"]);
                SW.Write("Memory: {0} ", queryObj["WorkingSetPrivate"]);
                SW.WriteLine("CPU%: {0}", queryObj["PercentProcessorTime"]);
            }
            SW.Close();

        }
    }
}

맥북 트랙패드 사용하기 편하게 설정하기

시스템 환경설정 > 트랙패드 열기

  • 포인트 및 클릭
    • 탭하여 클릭하기 활성화(왼쪽 아래의 가상 마우스 버튼을 클릭하지 않아도 됩니다.)
    • 세 손가락으로 드래그하기 활성화(마우스 오른쪽 버튼으로 윈도우를 드래그 하는 효과)
    • 이동속도 최대화(마우스 포인터 이동속도가 빨라집니다.)
  • 추가동작
    • 응용 프로그램 Expose - 네 손가락으로 아래로 쓸어내리기 활성화


맥북 iPhoto 샘플/테마 노래 위치

이번에 맥북프로 레티나를 사게되어서 처음으로 iPhoto를 사용해 보았는데 환상 그자체였다. 특히 아무 생각없이 실행했던 슬라이드쇼는 자동으로 여러가지 효과와 더불어 배경음악을 깔아주는데 노래가 너무 감동적이었다.

그래서 노래를 iTunes에서 따로 들을수 없을까 해서 찾아보았는데 인터넷에 있는 정보는 옛날 정보라서 새로운 정보를 공유할려고 글을 쓴다.

샘플 뮤직(iPhoto 전용):
/Applications/iPhoto.app/Contents/Resources/Music/*.m4a

테마 뮤직(iLife 공용):
/Applications/iPhoto.app/Contents/Frameworks/iLifeSlideshow.framework/Versions/A/Resources/Content/Audio/*.m4a