linux jpg图片转base64,如何base64编码图像在linux bash / shell(How to base64 encode image in linux bash / shell)...

如何base64编码图像在linux bash / shell(How to base64 encode image in linux bash / shell)

我试图在shell脚本中对64位图像进行编码,并将其放入变量中:

test="$(printf DSC_0251.JPG | base64)"

echo $test

RFNDXzAyNTEuSlBH

我也试过这样的东西:

test=\`echo -ne DSC_0251.JPG | base64\`

但仍然没有成功。

我想做这样的事情:

curl -v -X POST -d '{"image":$IMAGE_BASE64,"location":$LOCATION,"time_created":$TIMECREATED}' -H 'Content-type: text/plain; charset=UTF8' http://192.168.1.1/upload

我发现这个http://www.zzzxo.com/q/answers-bash-base64-encode-script-not-encoding-right-12290484.html

但仍然没有成功。

I'm trying to base64 encode an image in a shell script and put it into variable:

test="$(printf DSC_0251.JPG | base64)"

echo $test

RFNDXzAyNTEuSlBH

I've also tried something like this:

test=\`echo -ne DSC_0251.JPG | base64\`

but still with no success.

I want to do something like this:

curl -v -X POST -d '{"image":$IMAGE_BASE64,"location":$LOCATION,"time_created":$TIMECREATED}' -H 'Content-type: text/plain; charset=UTF8' http://192.168.1.1/upload

but still have had no success.

原文:https://stackoverflow.com/questions/16918602

更新时间:2019-11-06 18:07

最满意答案

您需要使用cat来获取名为“DSC_0251.JPG”的文件的内容 ,而不是文件名本身。

test="$(cat DSC_0251.JPG | base64)"

但是, base64可以从文件本身读取:

test=$( base64 DSC_0251.JPG )

You need to use cat to get the contents of the file named 'DSC_0251.JPG', rather than the filename itself.

test="$(cat DSC_0251.JPG | base64)"

However, base64 can read from the file itself:

test=$( base64 DSC_0251.JPG )

2013-06-04

相关问答

1.是,其他的shell还有csh、zsh、fish等。bash用得比较多,shell编程很强,不过fish和zsh的用户交互貌似做的很好。 2.一个标准的组成部分吧……就像python。套件一般用来指Linux发行版。

1.是 2.区别大,你会写bash shell不代表你会写c shell,不过我觉得你会写一个shell脚本 另一种你上手也很快,起码读懂应该问题不大。你可以先学bash shell因为用的比较多 而且可移植性强,bash 是shell的一种。 3.属于shell,只安装了bash shell就可以运行bash shell脚本,并不是针对某个系统或者发行版本。 shell这种东西可以随意安装的。你用习惯哪个shell,就算初装系统里没有,你也可以单独安装一个 4.给你推荐两本书 《Bash she

...

Bourne Again Shell (bash) bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat, Slackware, Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。 操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。 shel

...

您需要使用cat来获取名为“DSC_0251.JPG”的文件的内容 ,而不是文件名本身。 test="$(cat DSC_0251.JPG | base64)"

但是, base64可以从文件本身读取: test=$( base64 DSC_0251.JPG )

You need to use cat to get the contents of the file named 'DSC_0251.JPG', rather than the filename itself. test="$(ca

...

据我所知,图像数据有一个xml元素。 您可以使用本网站对文件进行编码(使用上传字段)。 然后将数据复制并粘贴到XML元素。 您也可以使用PHP这样做: <?php

$im = file_get_contents('filename.gif');

$imdata = base64_encode($im);

?>

使用Mozilla的指南来创建OpenSearch插件的帮助。 例如,图标元素使用如下:

echo $auth

结果: [51][00:33:22] vlazarenko@alluminium (~/tests) > echo -ne "\0myuse

...

我看到两个问题。 首先,在完成使用之前清除mymsg向量。 这会使arr指针悬空(指向不再分配的内存)。 当您访问arr以获取数据时,最终会出现“未定义行为”。 然后你使用strncpy来复制(潜在地)二进制数据。 当它到达文件中的第一个nul(0)字节时,该副本将停止,因此不会复制所有数据。 您应该使用memcpy 。 I see two problems. First, you are clearing your mymsg vector before you're done using it

...

通常不需要对图像进行编码,因为您可以将原始数据从客户端传递到服务器。 您指定的编码算法不仅需要额外的内存,而且还需要更多的处理能力来反转客户端的编码,并且它们没有任何优势。 编码图像有意义的唯一时间是将数据存储在数据库中,但如果您这样做,则实际上应该将图像保存到服务器上的本地路径,并将路径存储到文件中。数据库。 请参阅从base64字符串中将图像从android发送到PHP是一个好习惯吗? There typically is no need to encode the image, as you

...

您需要使用iconv从UTF-8转换为UTF-16而不使用字节顺序标记: $ echo -n 'BASE64' | iconv -f UTF8 -t UTF16LE | base64

QgBBAFMARQA2ADQA

UTF16LE使其省略BOM。 请参阅https://superuser.com/q/381056/4206 ,其中有人要求强行包括BOM,但您想要相反的,这很方便 - 问题就在于此。 You need to use iconv to convert from UTF-8 to U

...

这是一些Python代码,它接受命令行上的搜索词后面的文件名。 像往常一样,如果arg包含空格,则必须引用它。 import sys

from base64 import b64decode

fname, pattern = sys.argv[1:]

with open(fname) as f:

for row in f:

row = b64decode(row).decode()

if pattern in row:

print(

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值