>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Кодировка изображение в base64 http://forum.mozilla-russia.org/viewtopic.php?id=70062 |
Hamzat > 05-06-2016 22:53:47 |
Может кто поделится готовым кодом для кодирование изображение (который находится на компьютере) в base64. Или хотя бы ссылку, где описан медом кодировки. |
turbot > 05-06-2016 23:54:27 |
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, ""); } Может, поможет. |
Hamzat > 07-06-2016 00:36:53 |
turbot
Спасибо чувак, пришлось конечно повозится с кодом что адаптировать под imacros, ну все получилось) |