| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1712 人关注过本帖
标题:怎么生成图片
只看楼主 加入收藏
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:0 
不会....
2011-02-07 09:06
zjsxwc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:252
专家分:601
注 册:2011-1-20
收藏
得分:0 
额,我的目的是画函数图像到jpg,png,或者bmp,opengl有相应的函数吗?

The tools I recommended:
GUI: CSharp(VS), QT;    Core Code: Plain C (Tiny C Compiler);    Web: Python, JavaScript;    Android: Java;    Embedded System: ASM&C (Linux)
2011-02-07 09:09
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
gl只能画到屏幕上,但不能画到文件里

不推荐你使用glaux库

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2011-02-07 09:12
zjsxwc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:252
专家分:601
注 册:2011-1-20
收藏
得分:0 
没你说的那么麻烦,刚看了bmp这种文件的结构,发现不调用特别的库就用编译器自带的就能生成bmp图片

The tools I recommended:
GUI: CSharp(VS), QT;    Core Code: Plain C (Tiny C Compiler);    Web: Python, JavaScript;    Android: Java;    Embedded System: ASM&C (Linux)
2011-02-07 22:56
鸟侃
Rank: 2
等 级:论坛游民
帖 子:1
专家分:20
注 册:2011-2-9
收藏
得分:20 
BMP文件结构.zip (13.26 KB)

生成sin的bmp图
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

typedef unsigned char  BYTE;
typedef unsigned short WORD;
typedef unsigned long  DWORD;
typedef long                 LONG;

#pragma pack(2)

typedef struct {
        WORD    bfType;
        DWORD   bfSize;
        WORD    bfReserved1;
        WORD    bfReserved2;
        DWORD   bfOffBits;
} BITMAPFILEHEADER;

typedef struct {
        DWORD      biSize;
        LONG       biWidth;
        LONG       biHeight;
        WORD       biPlanes;
        WORD       biBitCount;
        DWORD      biCompression;
        DWORD      biSizeImage;
        LONG       biXPelsPerMeter;
        LONG       biYPelsPerMeter;
        DWORD      biClrUsed;
        DWORD      biClrImportant;
} BITMAPINFOHEADER;

void saveBitmap()
{
   // Define BMP Size
   const int height = 600;
   const int width = 800;
   const int size = height * width * 3;
   double x, y;
   int index;

   // Part.1 Create Bitmap File Header
   BITMAPFILEHEADER fileHeader;

   fileHeader.bfType = 0x4D42;
   fileHeader.bfReserved1 = 0;
   fileHeader.bfReserved2 = 0;
   fileHeader.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + size;
   fileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);

   // Part.2 Create Bitmap Info Header
   BITMAPINFOHEADER bitmapHeader = {0};

   bitmapHeader.biSize = sizeof(BITMAPINFOHEADER);
   bitmapHeader.biHeight = height;
   bitmapHeader.biWidth = width;
   bitmapHeader.biPlanes = 3;
   bitmapHeader.biBitCount = 24;
   bitmapHeader.biSizeImage = size;
   bitmapHeader.biCompression = 0; //BI_RGB

   // Part.3 Create Data
   BYTE *bits = (BYTE *)malloc(size);

   // Clear
   memset(bits, 0xFF, size);

   // Sin Graph
   for(x = 0; x < 800; x += 0.5)
   {
      y = sin(x / 100.0) * 200 + 300;
      index = (int)y * 800 * 3 + (int)x * 3;

      bits[index + 0] = 255; // Blue
      bits[index + 1] = 0;   // Green
      bits[index + 2] = 0;   // Red
   }

   // Write to file
   FILE *output = fopen("output.bmp", "wb");

   if(output == NULL)
   {
      printf("Cannot open file!\n");
   }
   else
   {
      fwrite(&fileHeader, sizeof(BITMAPFILEHEADER), 1, output);
      fwrite(&bitmapHeader, sizeof(BITMAPINFOHEADER), 1, output);
      fwrite(bits, size, 1, output);
      fclose(output);
   }
}

int main()
{
   saveBitmap();

   return 0;
}
2011-02-09 12:03
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
您可没有说bmp啊,您说的是jpeg

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2011-02-09 13:23
Michael529
Rank: 2
来 自:天津
等 级:论坛游民
帖 子:16
专家分:16
注 册:2010-5-26
收藏
得分:0 
用matlab多省事
2011-02-09 14:55
zjsxwc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:252
专家分:601
注 册:2011-1-20
收藏
得分:0 
回复 17楼 Michael529
那你还学c之类的干嘛,以后要实现某个功能是,就说“直接用xxx多省事”。哈哈哈
还有现在的matlab全是破解软件,我反正用着不放心,也不说什么尊重版权之类的大话,我仅仅就安全方面考虑也不会去用这些个破解软件。

[ 本帖最后由 zjsxwc 于 2011-2-9 18:18 编辑 ]

The tools I recommended:
GUI: CSharp(VS), QT;    Core Code: Plain C (Tiny C Compiler);    Web: Python, JavaScript;    Android: Java;    Embedded System: ASM&C (Linux)
2011-02-09 15:32
快速回复:怎么生成图片
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019237 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved