<h2>\96ß\82è\92l</h2>\r
\90¬\8c÷\82Ì\82Æ\82«\90¶\90¬\82³\82ê\82½<a href="SDL_Surface.html">SDL_Surface</a>, \8e¸\94s\82Ì\82Æ\82«NULL\82ð\96ß\82·.\r
<a href="SDL_GetError.html">SDL_GetError()</a>\82ð\8cÄ\82ñ\82Å\8fÚ\8d×\82ð\92m\82é\82±\82Æ\82ª\82Å\82«\82é.\r
+<h2>\83T\83\93\83v\83\8b\83R\81[\83h</h2>\r
+<p>\r
+<code>\r
+<pre>\r
+// stb_image.h\82ð\8eg\82Á\82Ä\93Ç\82Ý\8d\9e\82ñ\82¾\89æ\91\9c\83t\83@\83C\83\8b\82©\82çSDL_Surface*\82ð\90¶\90¬\82·\82é\83T\83\93\83v\83\8b\r
+// (https://github.com/nothings/stb/)\r
+\r
+// stb_image\82É\97v\8b\81\82·\82é\8fo\97Í\82Ì\83J\83\89\81[\8c`\8e®\r
+// \83¿\83`\83\83\83l\83\8b\82ð\8b\81\82ß\82È\82¢/\95K\97v\82È\82¢\82È\82ç\82ÎSTBI_rgb\82ð\8eg\82¤\82±\82Æ\r
+int req_format = STBI_rgb_alpha; \r
+int width, height, orig_format;\r
+unsigned char* data = stbi_load("./test.png", &width, &height, &orig_format, req_format);\r
+if(data == NULL) {\r
+ fprintf(stderr, "\89æ\91\9c\83t\83@\83C\83\8b\82Ì\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82½: %s\n", stbi_failure_reason());\r
+ exit(1);\r
+}\r
+\r
+// RGB(A)\83o\83C\83g\94z\97ñ\82Ì\82½\82ß\82Ì\83s\83N\83Z\83\8b\8c`\8e®\82Ì\83J\83\89\81[\83}\83X\83N\82ð\90Ý\92è\82·\82é\r
+// \82±\82ê\82ÍSTBI_rgb (3)\82ÆSTBI_rgb_alpha (4)\82Ì\82Ý\91Î\89\9e\82µ\82Ä\82¢\82é!\r
+Uint32 rmask, gmask, bmask, amask;\r
+#if SDL_BYTEORDER == SDL_BIG_ENDIAN\r
+ int shift = (req_format == STBI_rgb) ? 8 : 0;\r
+ rmask = 0xff000000 >> shift;\r
+ gmask = 0x00ff0000 >> shift;\r
+ bmask = 0x0000ff00 >> shift;\r
+ amask = 0x000000ff >> shift;\r
+#else // little endian, like x86\r
+ rmask = 0x000000ff;\r
+ gmask = 0x0000ff00;\r
+ bmask = 0x00ff0000;\r
+ amask = (req_format == STBI_rgb) ? 0 : 0xff000000;\r
+#endif\r
+\r
+int depth, pitch;\r
+if(req_format == STBI_rgb) {\r
+ depth = 24;\r
+ pitch = 3*width; // 1\83s\83N\83Z\83\8b\82 \82½\82è3byte * 1\8ds\82Ì\83s\83N\83Z\83\8b\90\94\r
+} else { // STBI_rgb_alpha (RGBA)\r
+ depth = 32;\r
+ pitch = 4*width;\r
+}\r
+\r
+SDL_Surface* surf = SDL_CreateRGBSurfaceFrom((void*)data, width, height, depth, pitch,\r
+ rmask, gmask, bmask, amask);\r
+\r
+if(surf == NULL) {\r
+ fprintf(stderr, "\83T\81[\83t\83F\83C\83X\82Ì\90¶\90¬\82É\8e¸\94s\82µ\82½: %s\n", SDL_GetError());\r
+ stbi_image_free(data);\r
+ exit(1);\r
+}\r
+\r
+// ... \82±\82±\82Å\83T\81[\83t\83F\83C\83X\82ð\8eg\82¤ ...\r
+// ...\r
+\r
+// \83T\81[\83t\83F\83C\83X\82ª\95K\97v\82È\82\82È\82Á\82½\82ç\89ð\95ú\82·\82é...\r
+SDL_FreeSurface(surf);\r
+// .. *\82»\82µ\82Ä* \83T\81[\83t\83F\83C\83X\82Å\8eg\82Á\82½\83f\81[\83^\82à!\r
+stbi_image_free(data);\r
+</pre>\r
+</code>\r
+</p>\r
<h2>\8fÚ\8d×</h2>\r
<p>\r
depth\82ª4\82Ü\82½\82Í8\82Ì\82Æ\82«, \8bó\82Ì\83p\83\8c\83b\83g\82ª\90¶\90¬\82³\82ê\82é.\r