Advertisement
Zavada

Cheddar basic bitmap heading

Dec 25th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1.  
  2.  
  3. var data = [];
  4. var pixels = [];
  5. var byteCount = 0;
  6. const SIGNATURE = 0x4d42;
  7. const HEADER_SIZE = 54;
  8. const SIZE_OF_BITMAP_INFO_HEADER = 40;
  9. const RESERVED01 = 0;
  10. const RESERVED02 = 0;
  11. const IMAGE_BYTE_OFFSET = 40;
  12. const BITMAP_INFO_HEADER = 40;
  13.  
  14. var width = 16;
  15. var height = 16;
  16. var bitsPerPixel = 24;
  17.  
  18. var compressionType = 0;
  19. var sizeOfImg=width * height * (bitsPerPixel/8);
  20. var sizeOfBMP=HEADER_SIZE + sizeOfImg;
  21. var horizontalResolutionPM = 100;
  22. var verticalResolutionPM = 100;
  23. var numberOfColors = 0;
  24. var numberOfImportantColors = 0;
  25.  
  26.  
  27. func reverse(a){
  28. var b = [];
  29. for(var i = 0; i < a.len; i+=1){
  30.  
  31. b[i] = a[a.len-1-i];
  32.  
  33. }
  34. return b;
  35. };
  36.  
  37. func appendData(a){print a; data += reverse(a)};
  38.  
  39. func finalizeData(){
  40. var s = "";
  41. for(var i = 0; i < byteCount; i+=1){
  42.  
  43. s+= @"data[i];
  44.  
  45. }
  46. return s;
  47. };
  48.  
  49. func toBytes(a,size){
  50.  
  51. var b = [];
  52.  
  53. byteCount += size;
  54.  
  55. for(var i = 0; i < size; i+= 1){
  56.  
  57. var offset = (size - i-1) * 8;
  58.  
  59. if(i == 0){
  60.  
  61. b[0] = a >> offset;
  62.  
  63. }else if(i == size-1){
  64.  
  65. b[i] = a;
  66.  
  67. for(var j = 0; j < i; j+=1){
  68.  
  69. var offset2 = (size - j-1) * 8;
  70.  
  71. b[i] -= b[j] << offset2;
  72.  
  73. }
  74.  
  75. }else{
  76.  
  77. b[i] = a;
  78.  
  79. for(var j = 0; j < i; j+=1){
  80.  
  81. var offset2 = (size - j-1) * 8;
  82.  
  83. b[i] -= b[j] << offset2;
  84.  
  85. }
  86.  
  87. b[i] >>= offset;
  88.  
  89. }
  90.  
  91. }
  92.  
  93. return b;
  94.  
  95. };
  96.  
  97. appendData(toBytes(SIGNATURE,2));
  98. appendData(toBytes(sizeOfBMP,4));
  99. appendData(toBytes(RESERVED02,2));
  100. appendData(toBytes(RESERVED02,2));
  101. appendData(toBytes(IMAGE_BYTE_OFFSET,4));
  102. appendData(toBytes(40,4));
  103. appendData(toBytes(width,4));
  104. appendData(toBytes(height,4));
  105. appendData(toBytes(1,2));
  106. appendData(toBytes(bitsPerPixel,2));
  107. appendData(toBytes(compressionType,4));
  108. appendData(toBytes(sizeOfImg,4));
  109. appendData(toBytes(horizontalResolutionPM,4));
  110. appendData(toBytes(verticalResolutionPM,4));
  111. appendData(toBytes(numberOfColors,4));
  112. appendData(toBytes(numberOfImportantColors,4));
  113.  
  114. for(var i = 0; i < width*height; i+=1){
  115. appendData(toBytes(0x32CD32,bitsPerPixel/8));
  116. }
  117.  
  118. var out = finalizeData();
  119.  
  120. var file = IO.open("Hello.bmp", "w");
  121. file.write(out);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement