亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jcmarker.c

?? 這是一個JPEG編碼源代碼
?? C
字號:
#include <stdio.h>

#include "jinclude.h"
#include "jcint.h"

typedef enum {
  SOF0 = 0xC0 ,   /* basic dct */
  SOF1 = 0xC1 ,   /* extend dct */
  
  DHT  = 0xC4 ,   /* huffman table defination */

  SOI  = 0xD8 ,   /* start of image */
  EOI  = 0xD9 ,   /* end of image */
  SOS  = 0xDA ,   /* start of scan */
  DQT  = 0xDB ,   /* quant table defination */

  COM  = 0xDE     /* common */
} MARKER;

void 
jmkr_write_image_start(jpeg_compress_info *cinfo) 
{
  jutl_write_byte(0xFF, cinfo->output);
  jutl_write_byte(SOI, cinfo->output);
}

void 
jmkr_write_image_end  (jpeg_compress_info *cinfo)
{
  jutl_write_byte(0xFF, cinfo->output);
  jutl_write_byte(EOI, cinfo->output);
}

void jmkr_write_frame_head (jpeg_compress_info *cinfo)
{
  int i;
  UINT16 Lf, X, Y;
  UINT8  P, Nf, C, H, V, Tq;
  jutl_write_byte(0xFF, cinfo->output);
  jutl_write_byte(SOF0, cinfo->output);
  Nf = cinfo->num_comp;
  P  = cinfo->precision;
  X  = cinfo->image_width;
  Y  = cinfo->image_height;
  Lf = 8 + 3*Nf;
  jutl_write_byte(Lf>>8, cinfo->output);
  jutl_write_byte(Lf&0xFF, cinfo->output);
  jutl_write_byte(P, cinfo->output);
  jutl_write_byte(Y>>8, cinfo->output);
  jutl_write_byte(Y&0xFF, cinfo->output);
  jutl_write_byte(X>>8, cinfo->output);
  jutl_write_byte(X&0xFF, cinfo->output);
  jutl_write_byte(Nf, cinfo->output);
  for (i=0; i<Nf; i++) {
    C = cinfo->comp[i].comp_id;
    H = cinfo->comp[i].h_factor;
    V = cinfo->comp[i].v_factor;
    Tq= cinfo->comp[i].quant_tbl_no;
    jutl_write_byte(C, cinfo->output);
    jutl_write_byte(((H<<4)|V), cinfo->output);
    jutl_write_byte(Tq, cinfo->output);
  } 
}

void 
jmkr_write_scan_head  (jpeg_compress_info *cinfo) 
{
  int i;
  UINT16 Ls;
  UINT8  Ns, Ss, Se, Ah, Al, Cs, Td, Ta;
  jutl_write_byte(0xFF, cinfo->output);
  jutl_write_byte(SOS, cinfo->output);
  Ns = cinfo->num_comp;
  Ls = 6+2*Ns;
  Ss = 0;  /* const!!! not change. */
  Se = 63;
  Ah = Al = 0;
  jutl_write_byte(Ls>>8, cinfo->output);
  jutl_write_byte(Ls&0xFF, cinfo->output);
  jutl_write_byte(Ns, cinfo->output);
  for (i=0; i<Ns; i++) {
    Cs = cinfo->comp[i].comp_id;
    Td = cinfo->comp[i].dc_tbl_no;
    Ta = cinfo->comp[i].ac_tbl_no;
    jutl_write_byte(Cs, cinfo->output);
    jutl_write_byte((Td<<4|Ta), cinfo->output);
  }
  jutl_write_byte(Ss, cinfo->output);
  jutl_write_byte(Se, cinfo->output);
  jutl_write_byte(((Ah<<4)|Al), cinfo->output);
}

void 
jmkr_write_quant_table(jpeg_compress_info *cinfo)
{
  int i, j;
  for (i=0; i<NUM_QUANT_TBLS; i++) {
    if (!cinfo->quant_table[i])
      continue;
    /* marker */
    jutl_write_byte(0xFF, cinfo->output);
    jutl_write_byte(DQT, cinfo->output);
    /* length, always 43h */
    jutl_write_byte(0x00, cinfo->output);
    jutl_write_byte(0x43, cinfo->output);
    /* ouput Pq & Tq */
    jutl_write_byte(i&0xFF, cinfo->output);
    /* all element */
    for (j=0; j<DCTSIZE2; j++) {
      UINT8 Q = cinfo->quant_table[i]->quantval[j];
      jutl_write_byte(Q, cinfo->output);
    }
  }
}

void 
jmkr_write_huff_table (jpeg_compress_info *cinfo)
{
  int i, j, num_val;
  UINT16 Lh;
  /* output DC HUFFMAN CODE */
  for (i=0; i<NUM_HUFF_TBLS; i++) {
    num_val = 0;
    if (!cinfo->dc_huff_table[i])
      continue;
    /* marker */
    jutl_write_byte(0xFF, cinfo->output);
    jutl_write_byte(DHT, cinfo->output);
    for (j=1; j<=16; j++) {
      num_val += cinfo->dc_huff_table[i]->bits[j];
    }
    /* length, always 43h */
    Lh = 3 + 16 + num_val;
    jutl_write_byte(Lh>>8, cinfo->output);
    jutl_write_byte(Lh&0xFF, cinfo->output);
    /* output identify */
    jutl_write_byte(i, cinfo->output);
    /* output bits */
    for (j=1; j<=16; j++) {
      jutl_write_byte(cinfo->dc_huff_table[i]->bits[j], cinfo->output);
    }
    for (j=0; j<num_val; j++) {
      jutl_write_byte(cinfo->dc_huff_table[i]->huffval[j], cinfo->output);
    }
  }
  /* output AC HUFFMAN CODE */
  for (i=0; i<NUM_HUFF_TBLS; i++) {
    num_val = 0;
    if (!cinfo->ac_huff_table[i])
      continue;
    /* marker */
    jutl_write_byte(0xFF, cinfo->output);
    jutl_write_byte(DHT, cinfo->output);
    for (j=1; j<=16; j++) {
      num_val += cinfo->ac_huff_table[i]->bits[j];
    }
    /* length, always 43h */
    Lh = 3 + 16 + num_val;
    jutl_write_byte(Lh>>8, cinfo->output);
    jutl_write_byte(Lh&0xFF, cinfo->output);
    /* output identify */
    jutl_write_byte((0x10|i), cinfo->output);
    /* output bits */
    for (j=1; j<=16; j++) {
      jutl_write_byte(cinfo->ac_huff_table[i]->bits[j], cinfo->output);
    }
    for (j=0; j<num_val; j++) {
      jutl_write_byte(cinfo->ac_huff_table[i]->huffval[j], cinfo->output);
    }
  }
}

void 
jmkr_write_jfif(jpeg_compress_info *cinfo)
{
  static const UINT8 jfcode[] = {
    0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 
    0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 
    0x00, 0x00
  };
  int i;
  for (i=0; i<18; i++) {
    jutl_write_byte(jfcode[i], cinfo->output);
  }
}

void 
jmkr_write_dri(jpeg_compress_info *cinfo) 
{
  static const UINT8 code[] = {
    0xFF, 0xDD, 0x00, 0x04, 0x00, 0x01
  };
  int i;
  for (i=0; i<6; i++) {
    jutl_write_byte(code[i], cinfo->output);
  }
}


void 
jmkr_write_start(jpeg_compress_info *cinfo) 
{
  jmkr_write_image_start(cinfo);
  jmkr_write_jfif(cinfo);
  jmkr_write_quant_table(cinfo);
  jmkr_write_frame_head(cinfo);
  jmkr_write_huff_table(cinfo);
/*  jmkr_write_dri(cinfo);*/
  jmkr_write_scan_head(cinfo);
}

void 
jmkr_write_end(jpeg_compress_info *cinfo) 
{
  jmkr_write_image_end(cinfo);
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品在线一区二区三区| 丁香桃色午夜亚洲一区二区三区| 色天使久久综合网天天| 亚洲伦理在线精品| 在线欧美日韩精品| 午夜精品久久久久久久| 欧美一区二区视频网站| 国产一区二区三区不卡在线观看 | 欧美高清视频不卡网| 亚洲123区在线观看| 日韩欧美色电影| 国产精品综合在线视频| 国产精品不卡在线| 欧美无人高清视频在线观看| 日韩黄色小视频| 国产欧美中文在线| 在线免费亚洲电影| 美洲天堂一区二卡三卡四卡视频 | 日日摸夜夜添夜夜添国产精品 | 欧美国产一区二区在线观看 | 国产超碰在线一区| 一区二区在线免费观看| 欧美精品久久99| 国产麻豆精品久久一二三| 亚洲男女一区二区三区| 91精品国产黑色紧身裤美女| 国产真实乱子伦精品视频| 最新日韩在线视频| 欧美一区在线视频| av电影在线观看不卡| 亚洲sss视频在线视频| 久久久久亚洲蜜桃| 欧美三级一区二区| 岛国一区二区三区| 免费欧美高清视频| 一区二区在线电影| 久久久久久久久免费| 欧美欧美午夜aⅴ在线观看| 国产一区二区三区黄视频| 亚洲国产综合91精品麻豆| 久久毛片高清国产| 欧美日韩免费高清一区色橹橹 | 91官网在线免费观看| 国产在线视视频有精品| 亚洲国产欧美在线| 国产精品理伦片| 精品乱人伦小说| 欧美视频在线观看一区| 成人免费视频国产在线观看| 青娱乐精品视频| 亚洲一区二区三区在线看| 国产精品久久二区二区| 26uuuu精品一区二区| 欧美一级高清片在线观看| 色视频成人在线观看免| 成人黄色在线看| 国产九色精品成人porny| 久久机这里只有精品| 亚洲成人av资源| 亚洲中国最大av网站| 国产精品国产a| 中文字幕免费不卡| 国产亚洲福利社区一区| 337p日本欧洲亚洲大胆色噜噜| 欧美精品视频www在线观看| 在线亚洲精品福利网址导航| 成人18精品视频| av激情成人网| www.综合网.com| 不卡在线观看av| jlzzjlzz亚洲日本少妇| 波多野结衣中文字幕一区 | 亚洲一区在线观看网站| 亚洲视频在线观看一区| 18欧美乱大交hd1984| 国产精品视频yy9299一区| 国产日韩欧美一区二区三区综合| 久久综合色鬼综合色| 久久影院午夜片一区| 欧美一级精品大片| 欧美sm美女调教| 久久久久久99久久久精品网站| 久久在线观看免费| 亚洲国产精品黑人久久久| 国产精品嫩草99a| 亚洲精品日韩专区silk| 亚洲狠狠爱一区二区三区| 一区二区三区在线免费视频| 亚洲一区二区在线观看视频 | 亚洲成人黄色小说| 午夜不卡在线视频| 青青草国产成人av片免费| 激情综合网最新| 国产91高潮流白浆在线麻豆| 国产69精品久久久久777| 成人午夜激情影院| 在线亚洲欧美专区二区| 91精品中文字幕一区二区三区| 欧美大片一区二区| 欧美激情一区不卡| 亚洲图片欧美视频| 美女网站在线免费欧美精品| 国产成人欧美日韩在线电影| 色94色欧美sute亚洲线路一久| 欧美三区在线观看| 精品久久国产老人久久综合| 国产精品电影一区二区| 亚洲超碰97人人做人人爱| 久久99久久精品| av一区二区三区| 欧美日韩在线播| 久久九九影视网| 亚洲国产精品视频| 国产精品自在在线| 欧洲亚洲精品在线| 久久嫩草精品久久久久| 一区二区三区四区在线免费观看| 七七婷婷婷婷精品国产| 99久久综合99久久综合网站| 这里只有精品电影| 亚洲色图在线播放| 激情欧美日韩一区二区| 色婷婷国产精品久久包臀| 日韩欧美黄色影院| 亚洲精品菠萝久久久久久久| 激情欧美一区二区| 欧美日韩亚洲另类| 综合婷婷亚洲小说| 国产精品自产自拍| 欧美日韩国产欧美日美国产精品| 久久久久久久久久电影| 首页国产丝袜综合| 91丝袜国产在线播放| 精品少妇一区二区三区免费观看| 亚洲精品亚洲人成人网| 国产v日产∨综合v精品视频| 欧美疯狂性受xxxxx喷水图片| 亚洲国产精品v| 激情综合色播激情啊| 欧美卡1卡2卡| 亚洲香肠在线观看| 99riav久久精品riav| 国产肉丝袜一区二区| 捆绑变态av一区二区三区| 欧美日韩中文国产| 尤物在线观看一区| www.色精品| 中文字幕av资源一区| 久久99精品国产麻豆婷婷| 91.com视频| 亚洲地区一二三色| 色综合天天视频在线观看| 国产精品久久久久影视| 国产精品一品视频| 精品91自产拍在线观看一区| 日本中文在线一区| 欧美日韩在线播放三区| 亚洲自拍欧美精品| 在线观看成人小视频| 亚洲欧美日韩国产另类专区| 成人av资源在线观看| 中文字幕+乱码+中文字幕一区| 国产精品自拍三区| 国产网站一区二区三区| 久久99国产乱子伦精品免费| 欧美一个色资源| 青青草97国产精品免费观看| 欧美大片顶级少妇| 热久久国产精品| 日韩欧美中文一区二区| 麻豆传媒一区二区三区| 精品国产a毛片| 国产精品1区2区| 欧美国产激情二区三区| 成人av电影观看| 亚洲男同性恋视频| 欧美三级日韩三级国产三级| 午夜伦理一区二区| 日韩精品一区二区三区中文精品| 蜜桃视频第一区免费观看| 久久午夜老司机| 福利电影一区二区三区| 亚洲欧美日韩一区二区| 色88888久久久久久影院按摩 | 欧美国产日韩在线观看| 波多野结衣中文字幕一区二区三区| 1000部国产精品成人观看| 99久久综合狠狠综合久久| 亚洲愉拍自拍另类高清精品| 欧美一区二区三区免费大片 | 日韩欧美在线不卡| 国产在线精品免费av| 综合自拍亚洲综合图不卡区| 欧美私人免费视频| 麻豆精品久久精品色综合| 久久精品一区八戒影视| 色婷婷久久久久swag精品| 日本最新不卡在线| 中文字幕第一区综合| 欧美色网一区二区|