数据图像库64

Cin*_*y93 6 html php web

有人可以解释这是如何工作的?

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACDUlEQVR4Xu2Yz6/BQBDHpxoEcfTjVBVx4yjEv+/EQdwa14pTE04OBO+92WSavqoXOuFp+u1JY3d29rvfmQ9r7Xa7L8rxY0EAOAAlgB6Q4x5IaIKgACgACoACoECOFQAGgUFgEBgEBnMMAfwZAgaBQWAQGAQGgcEcK6DG4Pl8ptlsRpfLxcjYarVoOBz+knSz2dB6vU78Lkn7V8S8d8YqAa7XK83ncyoUCjQej2m5XNIPVmkwGFC73TZrypjD4fCQAK+I+ZfBVQLwZlerFXU6Her1eonreJ5HQRAQn2qj0TDukHm1Ws0Ix2O2260RrlQqpYqZtopVAoi1y+UyHY9Hk0O32w3FkI06jkO+74cC8Dh2y36/p8lkQovFgqrVqhFDEzONCCoB5OSk7qMl0Gw2w/Lo9/vmVMUBnGi0zi3Loul0SpVKJXRDmphvF0BOS049+n46nW5sHRVAXMAuiTZObcxnRVA5IN4DJHnXdU3dc+OLP/V63Vhd5haLRVM+0jg1MZ/dPI9XCZDUsbmuxc6SkGxKHCDzGJ2j0cj0A/7Mwti2fUOWR2Km2bxagHgt83sUgfcEkN4RLx0phfjvgEdi/psAaRf+lHmqEviUTWjygAC4EcKNEG6EcCOk6aJZnwsKgAKgACgACmS9k2vyBwVAAVAAFAAFNF0063NBAVAAFAAFQIGsd3JN/qBA3inwDTUHcp+19ttaAAAAAElFTkSuQmCC
Run Code Online (Sandbox Code Playgroud)

这如何生成图像以及如何创建图像?我在html中发现了很多次.

跟进问题

在加载时间和http请求方面,作为src的url有何不同?这会加快加载时间吗?如果我要使用50幅图像,它会如何扩展?

也.

如果这更好

在上传,将图像转换为base64并将其保存在数据库而不是网址会使网站更好?

Jor*_*ing 5

你可以像这样使用它:

<img alt="Embedded Image" src="data:image/png;base64,{base64 encoding}" />
Run Code Online (Sandbox Code Playgroud)

它用于生成新图像,或以纯文本形式存储图像.您可以在维基百科上阅读有关base64编码的更多信息:http: //nl.wikipedia.org/wiki/Base64

它是如何工作的?

  1. 角色转换为binair
  2. 他们采取一组6位
  3. 这些组将转换为十进制
  4. 对于每个小数,它们取位于base64字符表中位置n + 1的数字,数字在0到63之间变化.

它并不总是正确的,因为位数必须是6的倍数.如果是这种情况,根据所需的附加位数,将在末尾放置2或4个零.如果是这样,最后会添加一个=.

Base64字符表

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
Run Code Online (Sandbox Code Playgroud)

不同的语言和用法

PHP

<?php
base64_encode($source);
// Or decode:
base64_decode($source);
Run Code Online (Sandbox Code Playgroud)

蟒蛇

>>> import base64
>>> encoded = base64.b64encode('data to be encoded')
>>> encoded
'ZGF0YSB0byBiZSBlbmNvZGVk'
>>> data = base64.b64decode(encoded)
>>> data
'data to be encoded'
Run Code Online (Sandbox Code Playgroud)

目标C.

// Encoding

NSData *plainData = [plainString dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64String = [plainData base64EncodedStringWithOptions:0];
NSLog(@"%@", base64String); // Zm9v

// Decoding

NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
NSLog(@"%@", decodedString); // foo 
Run Code Online (Sandbox Code Playgroud)