如何将数据从javascript的canvas.toDataURL保存到ruby中的图像文件?
下面的示例代码创建了图像,但是出现错误,说明格式无法识别或损坏
require 'base64'
chart1 = params[:chart1].split(',')
image = Base64.decode64(chart1[1])
File.open("#{Rails.root}/test.png", 'wb') do|f|
f.write(image)
end
Run Code Online (Sandbox Code Playgroud)
谢谢!
注意:已编辑.现在可以正常工作了
我试图将OpenCV图像保存到硬盘驱动器.
这是我尝试过的:
public void SaveImage (Mat mat) {
Mat mIntermediateMat = new Mat();
Imgproc.cvtColor(mRgba, mIntermediateMat, Imgproc.COLOR_RGBA2BGR, 3);
File path =
Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES);
String filename = "barry.png";
File file = new File(path, filename);
Boolean bool = null;
filename = file.toString();
bool = Highgui.imwrite(filename, mIntermediateMat);
if (bool == true)
Log.d(TAG, "SUCCESS writing image to external storage");
else
Log.d(TAG, "Fail writing image to external storage");
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以展示如何使用OpenCV 2.4.3保存该图像吗?
我有这个脚本,我从特定网站获取图像链接,因此我创建了一个功能,我传递图像链接和网站的源名称将用于将图像放在相应的目录上.
但是有时这个函数不能正常工作,随机它会保存图像,但图像基本上是空的,因此它只会保存一个空文件,其中包含来自$ img_link的原始文件名,但无法显示实际图像.
在这种情况下,如果发生这种情况,我试图返回一个默认的图像路径.但它没有这样做并返回如上所述的空图像.
function saveIMG($img_link, $source){
$name = basename($img_link); // gets basename of the file image.jpg
$name = date("Y-m-d_H_i_s_") . mt_rand(1,999) . "_" .$name;
if (!empty($img_link)){
$ch = curl_init($img_link);
$fp = fopen("images/$source/$name", 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
fclose($fp);
$name ="images/$source/$name";
return $name;
}
else {
$name = "images/news_default.jpg";
return $name;
}
}
Run Code Online (Sandbox Code Playgroud)
你有什么更好的想法,当它无法检索图像时如何制作案例?
谢谢
我正在使用 MPAndroidChart 来呈现各种图表。我想添加将图表作为图像保存到图库的功能。我在操作栏中添加了一个图标以使用此功能,但图像未保存到图库中。
代码如下:
<item android:id="@+id/save"
android:icon="@drawable/ic_action_accept"
android:title="@string/save"
app:showAsAction="always"/>
Run Code Online (Sandbox Code Playgroud)
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
switch (item.getItemId()) {
case R.id.save …Run Code Online (Sandbox Code Playgroud) 我有一个OpenDialog在我的wpf应用程序中,用户可以选择文件并保存到文件夹.我想将图像保存到特定文件夹,并在wpf中单击按钮时设置文件名和扩展名.
文件夹结构:
-MyAppDirectory
--ContactImages
-1.jpg
当我执行以下代码时,它会ContactImages在Bin文件夹中创建" "目录,而不是在Application main direcotry中.任何的想法?以及如何在wpf和设置文件名中获取上传文件的文件扩展名?
在xaml.cs文件中:
private void imgContactImage_MouseDown(object sender, MouseButtonEventArgs e)
{
string folderpath = Environment.CurrentDirectory + "\\ContactImages\\";
op.Title = "Select a picture";
op.Filter = "All supported graphics|*.jpg;*.jpeg;*.png|" +
"JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|" +
"Portable Network Graphic (*.png)|*.png";
bool? myResult;
myResult = op.ShowDialog();
if (myResult != null && myResult == true)
{
imgContactImage.Source = new BitmapImage(new Uri(op.FileName));
if (!Directory.Exists(folderpath))
{
Directory.CreateDirectory(folderpath);
}
//System.IO.File.Copy(op.FileName,filename);
}
}
Run Code Online (Sandbox Code Playgroud) 我需要截取屏幕的一部分并检查屏幕截图是否与pictureBox2.
这是行不通的:
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
Run Code Online (Sandbox Code Playgroud)
错误是
值不能为空。
参数名称:编码器

我的代码如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
Bitmap screenshot = new Bitmap(SystemInformation.VirtualScreen.Width,
SystemInformation.VirtualScreen.Height,
PixelFormat.Format32bppArgb);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
Bitmap screenshot = new Bitmap(SystemInformation.VirtualScreen.Width,
SystemInformation.VirtualScreen.Height,
PixelFormat.Format32bppArgb);
Graphics screenGraph = Graphics.FromImage(screenshot);
screenGraph.CopyFromScreen(
SystemInformation.VirtualScreen.X …Run Code Online (Sandbox Code Playgroud) 在Windows LoadImageAPI中将图像加载到内存中.
FreeImage(http://freeimage.sourceforge.net)是一个用于加载和保存图像的跨平台库,但我想使用像LoadImageWindows这样的函数,它们不依赖于像FreeImage这样的任何外部库.
Linux中是否有任何本机函数可以在不使用外部库的情况下加载和保存图像?
我正在为Windows PC创建一个GUI.我想在PC上存储一系列图像.图像的名称是相同的.但我想用时间戳附加它们.那么,如何在Qt中使用时间戳保存图像?除此之外,保存的图像如下例所示:referenceImage <.date.> <.time.> jpg其中日期和时间对应于在Windows PC上保存图像的日期和时间.我也试过以下
在这里,我点击了一个按钮实现了这个: -
void MainWindow::on_generateImagePushButton_clicked()
{
QDate date = QDate::currentDate();
QString dateString = date.toString();
QString path = QString("E:\\QT1\\timeStampTrial\\goldenRefImg[%1].jpg").arg(dateString);
qDebug()<<"path: "<<path;
/*display current time*/
QTime time = QTime::currentTime();
QString timeString = time.toString();
QString path2 = QString("E:\\QT1\\timeStampTrial\\goldenRefImg[%1 %2].jpg").arg(dateString).arg(timeString);
qDebug()<<"path2: "<<path2;
/*converting from QString to char* */
QByteArray bA = path2.toLocal8Bit();
const char *c_charArray = bA.data();
/*saving image*/
IplImage *imgWithTimeStamp = cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,3);
cvSaveImage(c_charArray, imgWithTimeStamp);
}
Run Code Online (Sandbox Code Playgroud)
使用dateStamp保存图像,例如.goldenRefImg [Wed Feb 5 2014] .jpg当我使用string-path时.但是当我使用string-path2时,它不会像我期望的那样保存dateStamp和timeStamp,即goldenRefImg [Wed Feb 5 2014 10:47:32] .jpg但是显示路径和路径2的qDebug语句正确显示.应用输出:
Starting …Run Code Online (Sandbox Code Playgroud) 我绝望地在我的代码中寻找错误,并且非常感谢sb可以帮助我.我正在尝试将图像保存到我的三星Galaxy Tab s2的SD卡中,但无论我使用什么代码,我似乎都无法对SD卡进行任何更改.
下面的代码段落表明,尽管清单发生了变化,但我无权在SD卡上写入数据.
是否有人有同样的问题或知道这里发生了什么?
(android:minSdkVersion ="19"; android:targetSdkVersion ="25")
码:
File filepath = Environment.getExternalStorageDirectory();
File dir = new File(filepath.getAbsolutePath() + "/SaveImage");
MediaStore.Images.Media.insertImage(getContentResolver(), bmp ,"Image.jpg", "IMAGE");
Run Code Online (Sandbox Code Playgroud)
表现:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ma.singhalja.saveimage">
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
Run Code Online (Sandbox Code Playgroud)
日志:
03-28 01:16:54.647 14292-14292/com.ma.singhalja.saveimage E/MediaStore: Failed to insert image
java.lang.SecurityException: Permission Denial: writing com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=14292, uid=10141 requires android.permission.WRITE_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1620)
Run Code Online (Sandbox Code Playgroud) save-image ×9
android ×2
c# ×2
c ×1
c++ ×1
curl ×1
datestamp ×1
image ×1
linux ×1
loadimage ×1
manifest ×1
memorystream ×1
opencv ×1
permissions ×1
php ×1
qt ×1
ruby ×1
save ×1
timestamp ×1
wpf-controls ×1