[질문]C로 GD Library 사용중 에러 발생...

paraline의 이미지

안녕하세요?

얼마전에 솔라리스에서 이미지 프로세싱하는 방법에 대해서 질문드렸던 사람입니다.
여러분들의 조언으로 gd library를 써보기로 하고, 일단 윈도용 라이브러리를 받아서 테스트 했습니다.

MFC 프로젝트를 만들어서 샘플코드를 그대로 실행시켰는데, 컴파일은 잘 됐지만, 실행시 에러가 발생합니다.
gdImagePng(), gdImageJpeg()을 호출할때, written 에러 메세지가 뜨면서 죽어버리는데, 이유를 모르겠네요.

일단은 gd library 사이트에 있는대로 환경설정도 하고, 샘플코드도 그대로 써봤는데, 왜 에러가 나는지...

혹시 저와 같은 경우가 있으셨던 분들께서는 조언 좀 해주세요.

답변 주실 모든분들께 미리 감사의 말씀 전합니다.

참고로, 소스의 일부를 올립니다.
1. Settings에서 bgd.lib를 추가했고, bgd.dll을 해당 디렉토리에 복사했습니다.
2. #include "gd.h"를 했습니다.
3. 버튼을 누르면 아래의 코드가 실행되도록 했습니다.

/////////////////////////////////////////////////////////////////////////////////
void CGdtestDlg::OnButtonGdTest() 
{
	// TODO: Add your control notification handler code here
	gdImagePtr im;
	/* Declare output files */
	FILE *pngout, *jpegout;
	/* Declare color indexes */
	int black;
	int white;
	
	/* Allocate the image: 64 pixels across by 64 pixels tall */
	im = gdImageCreate(64, 64);

	/* Allocate the color black (red, green and blue all minimum).
    Since this is the first color in a new image, it will
    be the background color. */
	black = gdImageColorAllocate(im, 0, 0, 0);  
	
	/* Allocate the color white (red, green and blue all maximum). */
	white = gdImageColorAllocate(im, 255, 255, 255);  
	
	/* Draw a line from the upper left to the lower right,
    using white color index. */
	gdImageLine(im, 0, 0, 63, 63, white);  
	
	/* Open a file for writing. "wb" means "write binary", important
    under MSDOS, harmless under Unix. */
	pngout = fopen("test.png", "wb");
	
	/* Do the same for a JPEG-format file. */
	jpegout = fopen("test.jpg", "wb");
	
	/* Output the image to the disk file in PNG format. */
gdImagePng(im, pngout); /////////////// 에러 발생
	/* Output the same image in JPEG format, using the default
    JPEG quality setting. */
gdImageJpeg(im, jpegout, -1); /////////////// 에러 발생
	
	/* Close the files. */
	fclose(pngout);
	fclose(jpegout);
	
	/* Destroy the image in memory. */
	gdImageDestroy(im);
	
}
/////////////////////////////////////////////////////////////////////////////////

혹시 위에 수행한것 외에 다른것이 필요한가요?
예를 들어, libpng(?)나 libjpeg(?) 이런 종류의 라이브러리가 추가되어야 하는지요?

vinus의 이미지

컴파일시에 다른 라이버러리 링크를 하셨는지요?
예를 들자면, png 라이버리 같은 것들....

요즘은 어떤지 모르지만 예전에 사용 했던 기억으로는 gd 라이버러리 이외에도 다른 것들을 같이 묶어 줬던 기억 있습니다.

>>>행복한 웃음<<<

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.