Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
using System; using System.IO; using System.Linq; using Xamarin.Forms; using System.Text; using System.Collections.Generic; namespace MandelBrootSet { public class BmpMaker { const int headerSize = 54; readonly byte[] buffer; public BmpMaker(int width, int height) { Width = width; Height = height; int numPixels = Width * Height; int numPixelBytes = 4 * numPixels; int fileSize = headerSize + numPixelBytes; buffer = new byte[fileSize]; // Escritor y acumulador de encabezados: Buffer. using (MemoryStream memoryStream = new MemoryStream(buffer)) { //Asignación binaria del archivo temporal. using (BinaryWriter writer = new BinaryWriter(memoryStream, Encoding.UTF8)) { // Constructor del encabezado del BitMap (14 bytes). writer.Write(new char[] { 'B', 'M' }); writer.Write(fileSize); writer.Write((short)0); writer.Write((short)0); writer.Write(headerSize); // Constructor BitmapInfoHeader (40 bytes). writer.Write(40); // Header size writer.Write(Width); writer.Write(Height); writer.Write((short)1); //Tasa writer.Write((short)32); //Tasa writer.Write(0); // Compresión writer.Write(numPixelBytes); //Balanza de imagen en pixeles. writer.Write(0); //Densidad de Pixels/Color writer.Write(0); writer.Write(0); writer.Write(0); } } } //Instanciando Ancho y Altura public int Width { private set; get; } public int Height { private set; get; } //Funciones de configuración de Color y carga del Buffer public void SetPixel(int row, int col, Color color) { SetPixel(row, col, (int)(255 * color.R), (int)(255 * color.G), (int)(255 * color.B), (int)(255 * color.A)); } public void SetPixel(int row, int col, int r, int g, int b, int a = 255) { int index = (row * Width + col) * 4 + headerSize; buffer[index + 0] = (byte)b; buffer[index + 1] = (byte)g; buffer[index + 2] = (byte)r; buffer[index + 3] = (byte)a; } //Método para generar la imagen. public ImageSource Generate() { // Creando el MemoryStream a partir del Buffer colector de bitmaps. MemoryStream memoryStream = new MemoryStream(buffer); // Conversión a StreamImageSource. ImageSource imageSource = ImageSource.FromStream(() => { return memoryStream; }); return imageSource; } } }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)