- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 croppie 在我的 laravel 应用程序中上传图片。上传部分完美无缺。但是,由于 PNG 图像比原始图像占用更多空间。我想将 jpeg 图像而不是 PNG 存储在服务器上,并提供我自己的质量参数。
这是我使用 croppie 上传图片的 javascript 代码。
$(function() {
var croppie = null;
var el = document.getElementById('resizer');
$.base64ImageToBlob = function(str) {
// extract content type and base64 payload from original string
var pos = str.indexOf(';base64,');
var type = str.substring(5, pos);
var b64 = str.substr(pos + 8);
// decode base64
var imageContent = atob(b64);
// create an ArrayBuffer and a view (as unsigned 8-bit)
var buffer = new ArrayBuffer(imageContent.length);
var view = new Uint8Array(buffer);
// fill the view, using the decoded base64
for (var n = 0; n < imageContent.length; n++) {
view[n] = imageContent.charCodeAt(n);
}
// convert ArrayBuffer to Blob
var blob = new Blob([buffer], { type: type });
return blob;
}
$.getImage = function(input, croppie) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
croppie.bind({
url: e.target.result,
});
}
reader.readAsDataURL(input.files[0]);
}
}
$("#file-upload").on("change", function(event) {
$("#myModal").modal();
// Initailize croppie instance and assign it to global variable
croppie = new Croppie(el, {
viewport: {
width: 200,
height: 200,
type: 'circle'
},
boundary: {
width: 250,
height: 250
},
enableOrientation: true
});
$.getImage(event.target, croppie);
});
$("#upload").on("click", function() {
croppie.result('base64').then(function(base64) {
$("#myModal").modal("hide");
$("#profile-pic").attr("src","/images/ajax-loader.gif");
var url = "{{ url('/demos/jquery-image-upload') }}";
var formData = new FormData();
formData.append("profile_picture", $.base64ImageToBlob(base64));
// This step is only needed if you are using Laravel
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'POST',
url: url,
data: formData,
processData: false,
contentType: false,
success: function(data) {
if (data == "uploaded") {
$("#profile-pic").attr("src", base64);
} else {
$("#profile-pic").attr("src","/images/icon-cam.png");
console.log(data['profile_picture']);
}
},
error: function(error) {
console.log(error);
$("#profile-pic").attr("src","/images/icon-cam.png");
}
});
});
});
// To Rotate Image Left or Right
$(".rotate").on("click", function() {
croppie.rotate(parseInt($(this).data('deg')));
});
$('#myModal').on('hidden.bs.modal', function (e) {
// This function will call immediately after model close
// To ensure that old croppie instance is destroyed on every model close
setTimeout(function() { croppie.destroy(); }, 100);
})
});
我想要的很简单。我想将上传的图像保存为 JPEG 格式,并根据需要为其分配质量参数,这样图像就不会占用太多空间。
我查阅了 croppie 文档。他们确实提供了格式和质量参数来解决这个问题,但我不知道如何使用它。
format Indicating the image format.
Default:'png'
Valid values:'jpeg'|'png'|'webp'
quality Number between 0 and 1 indicating image quality.
Default:1
circle force the result to be cropped into a circle
Valid Values:truefalse
在这方面的任何帮助将不胜感激。
谢谢
最佳答案
在result
方法中,您可以将格式作为第三个参数传递
croppie.result('base64', 'original', 'jpeg')
第二个参数是裁剪图像的大小。查看文档以获取有关可用参数的更多信息
编辑:质量是第四个参数,0 到 1 之间的数字表示图像质量。
关于javascript - Laravel/Croppie 2.6.2 : How to get output image in JPEG instead of default PNG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53079442/
我正在使用croppie插件来裁剪我的图像。但是当我裁剪图像时,结果图像并不像我裁剪的那样。 最佳答案 我遇到了同样的问题,发现这是因为图像具有样式(在 css 文件中)最大宽度:100%我将其删除,
我正在使用 croppie.js 库来裁剪图像。但是一些图像在被选中时出现倒置。我想添加一个 onclick 旋转功能,它会在单击按钮时旋转图像。我发现示例代码在文档中轮换,但将其添加到我的代码中根本
我正在尝试使用来自 Foliotek 的图像裁剪器 Croppie,但出于某种原因它对我不起作用 - 我使用的是一个非常简单的示例。 我正在使用以下页面中的演示示例:http://foliotek.g
我正在尝试使用 Croppie 在将图像上传到服务器之前使用 Javascript 裁剪图像。它工作得很好,用户界面也很好。但是,在玩演示时,我注意到生成的图像质量比原始图像差得多 - 我使用的是 1
我正在 Angular 6 上构建一个应用程序,它使用 ngx-croppie模块。它工作正常,但是当我这样做时 ng build --prod 我收到以下错误: Module not found:
我使用 Croppie jQuery 插件来裁剪图像并返回以 base64 编码的裁剪后的图像。 我的代码如下: $uploadCrop.croppie('result', { type: '
我正在尝试使用 Croppie Library 将图像裁剪为 cicle 我尝试使用它们的函数返回 base64 编码的图像。它返回一个 base64 代码但没有图像:这是我的代码:
我正在尝试让 Croppie 脚本使用按钮进行旋转。由于似乎是不同的语法或其他原因,它不适用于此特定脚本。我不是一个狂热的 JavaScript 程序员。但下面的代码是我所拥有的,并试图使用按钮进行旋
我正在使用 Croppie jQuery用于裁剪图像但在创建多个实例时遇到问题的库。 我没有找到关于销毁实例的文档。 function initCrop() { var $uploadCrop
Croppie 使用 DIV 容器而不是 CANVAS 来进行裁剪。我正在尝试找出如何将生成的裁剪图像从此 DIV 保存到服务器上的目录中,例如通过“保存”按钮。 这是我的 HTML 代码 ...
我用过Jquery Croppie为了在弹出模型中裁剪或缩放图像的要求,我使用 fancybox 在弹出窗口中显示图像,现在我想在弹出模式中制作裁剪图像或缩放图像我尝试过,但它不再工作了。我已经完成了
我正在使用 croppie 插件,但在使用 ajax/php 覆盖内容时无法正常工作(结果显示为 innerHtml)。我应该做什么?请帮助我! 阅读更多关于 croppie 的信息:https://
我提到了这个URL 我正在使用 croppie plugin它在 Android、Chrome、Mozilla 上运行良好。但不适用于 iOS 和 Safari。如果我从 iOS 上传图片,那么它会进
我创建了一个画廊页面,我在其中拍摄图像。现在我正在尝试为图像添加裁剪选项,我想使用 croppie但不明白如何在 Angular 7 中使用它? 如有任何其他裁剪选项或建议,我们将不胜感激。 最佳答案
我有一个非常基本的 Croppie div 正在初始化,如下所示: HTML: JavaScript: $uploadCrop = $('#upload-avatar').croppie({
我在处理这段 Croppie.JS 代码时遇到了一些严重的问题。 它在 Croppie.JS 演示上运行。通过变量调用 croppie 插件正在运行并报告括号内的对象。 但是,当我尝试将其链接到旋转按
我已经使用 Croppie 插件使用 PHP、jQuery 和 Ajax 编写了裁剪图像的代码。 我也在尝试用它添加输入值。 但是我不知道如何使用 PHP 使用 ajax 发布输入值。 我的意思是说,
我正在尝试开发一个应用程序,它可以从 facebook sdk 或通过 ajax 上传获取图像,并使用 croppie.js 进行裁剪。并上传到我的服务器目录。我是 Ajax、jQuery 和 php
我正在使用 croppie 库来帮助我裁剪图片。然而奇怪的是,有时裁剪有效,有时无法裁剪图片。当它工作时,我在控制台中没有收到任何错误,但是当它不起作用时,我在控制台中收到此错误 这是我下载并正在使用
我正在使用 jquery Croppie 插件“http://foliotek.github.io/Croppie/”在上传之前裁剪图像,它工作正常,但它停止了我的 jquery 代码中的“$(win
我是一名优秀的程序员,十分优秀!