Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№105-06-2016 22:53:47

Hamzat
Участник
 
Группа: Members
Зарегистрирован: 30-03-2015
Сообщений: 326
UA: Chrome 50.0

Кодировка изображение в base64

Может кто поделится готовым кодом для кодирование изображение (который находится на компьютере) в base64. Или хотя бы ссылку, где описан медом кодировки.


iMacros скрипты на заказ!

Отсутствует

 

№205-06-2016 23:54:27

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 49.0

Re: Кодировка изображение в base64

Custom Buttons кнопка:

скрытый текст

Выделить код

Код:

// http://blog.userstyles.org/2007/01/28/creating-a-data-uri-from-a-file/
this.onclick =e=> {
  e.preventDefault();
  if (e.button == 0) copyDataURI();
  if (e.button == 1) {
    document.popupNode = this;
    custombuttons.getCbContextObj(this).oMenu
      .openPopup(this, "after_start", -1, -1, true, false)
  }
  if (e.button == 2) loadDataURI();
}

var alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService);

// Open a file
function getFile() {
  var nsIFilePicker = Components.interfaces.nsIFilePicker;
  var fp = Components.classes['@mozilla.org/filepicker;1'].
           createInstance(nsIFilePicker);
  fp.init(window, gNavigatorBundle.getString("openFile"),
                   nsIFilePicker.modeOpen);
  fp.appendFilters(nsIFilePicker.filterAll |
                   nsIFilePicker.filterText |
                   nsIFilePicker.filterImages |
                   nsIFilePicker.filterXML |
                   nsIFilePicker.filterHTML);
  fp.appendFilter("JavaScript", "*.js");
  fp.appendFilter("CSS", "*.css");
  fp.appendFilter("XUL", "*.xul");
  if (fp.show() == nsIFilePicker.returnCancel) return;

  var localFile = Components.classes["@mozilla.org/file/local;1"]
                      .createInstance(Components.interfaces.nsILocalFile);
  localFile.initWithPath(fp.file.path);
  return localFile;
}

// Generate data:URI from a file
function generateDataURI(aFile) {
  var contentType = Components.classes["@mozilla.org/mime;1"].getService(Components.interfaces.nsIMIMEService)
                                             .getTypeFromFile(aFile);
  var inputStream = Components.classes["@mozilla.org/network/file-input-stream;1"]
                      .createInstance(Components.interfaces.nsIFileInputStream);
  inputStream.init(aFile, 0x01, 0600, 0);
  var stream = Components.classes["@mozilla.org/binaryinputstream;1"]
                 .createInstance(Components.interfaces.nsIBinaryInputStream);
  stream.setInputStream(inputStream);
  var encoded = btoa(stream.readBytes(stream.available()));
  return "data:" + contentType + ";base64," + encoded;
}

// Load data:URI to a new tab
function loadDataURI() {
  var file = getFile();
  if (!file) return;
  var dataURI = generateDataURI(file);
  gBrowser.loadOneTab(dataURI, null, null, null, false);
}

// Copy data:URI to clipboard
function copyDataURI() {
  var file = getFile();
  if (!file) return;
  var dataURI = generateDataURI(file);
  Components.classes["@mozilla.org/widget/clipboardhelper;1"].
  getService(Components.interfaces.nsIClipboardHelper).copyString(dataURI);
  alertsService.showAlertNotification(self.image, self.label, 'Результат скопирован в буфер обмена!', false, "", null, "");
}


Может, поможет.

Отсутствует

 

№307-06-2016 00:36:53

Hamzat
Участник
 
Группа: Members
Зарегистрирован: 30-03-2015
Сообщений: 326
UA: Chrome 50.0

Re: Кодировка изображение в base64

turbot

Может, поможет.

Спасибо чувак, пришлось конечно повозится с кодом что адаптировать под imacros, ну все получилось)


iMacros скрипты на заказ!

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]