1.0.3 • Published 7 years ago

wordwrapimagewriter v1.0.3

Weekly downloads
14
License
-
Repository
github
Last release
7 years ago

wordwrapimagewriter

ES6 JS class to write text onto image with word wrapping

Installation

npm install wordwrapimagewriter --save

Usage

Write lines onto an image wrapping and automatically determining
spacing and padding as specified

// Instantiate the writer
var writer = new wordwrapimagewriter({
  imgFilename: './imageToWriteOnto.png',
  availableLines: 3, // your maximum line number you allow
  topPadPx: 50, // spacing from top of image to move down before writing
  lineBottomPadPx: 5, // spacing at bottom of each line
  fontFile: './HelveticaBold.ttf',
});

// Call open to asynchronously load image before writing
writer.openImg(() => {
  // The color declarations are from the node-gd package in rgba format
  var usernameColor = writer.img.colorAllocateAlpha(255, 20, 20, 1);
  var textColor = writer.img.colorAllocateAlpha(255, 255, 255, 1);
  var usernameText = "jenk37: ";
  var messageText = "I think that the wordwrapimagewriter is pretty good";

  // Write text onto the image. If the text takes more more lines
  // than availableLines, it will return the text that did not fit.
  var textThatWontFit = writer.writeText(usernameText, usernameColor);

  if (textThatWontFit) {
    console.log("[!] Text couldn't fit:", textThatWontFit);
  }

  // Change font or size. Changing size will automatically update lineLength
  writer.setFontSize(30);
  writer.setFont('./Helvetica.ttf');

  textThatWontFit = writer.writeText(messageText, textColor);

  if (textThatWontFit) {
    console.log("[!] Text couldn't fit:", textThatWontFit);
  }

  // Save the image file
  writer.save("./newImageFilename.png", () => {
    return callback();
  });
});

Credits

http://c-cfalcon.rhcloud.com