Ich verwende jquery, um Daten an eine Controller-Funktion zu senden, die ein Bild auf dem Server als Wasserzeichen markiert und dynamisch zurückbucht. Die Wasserzeichenfunktion funktioniert, wenn ich keine dynamische Ausgabe verwende, aber wenn ich dies tue, wird einfach ein leeres Bild mit einem 1 Pixel grauen Rand um es herum zurückgegeben.CodeIgniter Bild Wasserzeichen gibt leeres Bild zurück, wenn dynamische Ausgabe verwendet
Das zurückgegebene Bild wird korrekt benannt und die richtigen Bildtyp-Header werden darauf angewendet. Dies ist die erste Zeile aus der Verschlingen-de-gook im Netzwerk Inspektoren zurückgegeben:
ÿØÿàJFIFÿþ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v90), quality = 90
alternativen Verfahren, dies zu erreichen würden geschätzt haben Tage auf diese jetzt mit wenig Erfolg ausgegeben. Ich würde es vorziehen, das Bild auf dem Server möglichst unberührt zu lassen.
Java:
$('#body').on('click', '#get_file', function(ev)
{
ev.preventDefault();
var type = 'file';
var uid = $('#file_select').val();
var v1 = retD['res'][0].v1;
var v2 = retD['res'][0].v2;
var v3 = retD['res'][0].v3;
var v4 = retD['res'][0].v4;
$.ajax({
type: 'POST',
url: '<?php echo site_url("Home_controller/drawInfo") ?>',
data: {v1:v1, v2:v2, v3:v3, v4:v4},
dataType: 'html',
success: function(img)
{
$("#i").attr("src", img);
}
});
});
Controller:
function drawInfo()
{
$v1 = $_POST['v1'];
$v2 = $_POST['v2'];
$v3 = $_POST['v3'];
$v4 = $_POST['v4'];
$config['image_library'] = 'gd2';
$config['source_image'] = './img/Test_image.jpg';
$config['wm_text'] = 'v1: ' . $v1 . ' v2: ' . $v2 . ' v3: ' . $v3 . ' v4: ' . $v4;
$config['wm_type'] = 'text';
$config['dynamic_output'] = true;
$config['wm_font_color'] = 'ff0000';
$config['wm_font_path'] = './system/fonts/texb.ttf';
$config['wm_vrt_alignment'] = 'bottom';
$config['wm_hor_alignment'] = 'center';
$config['wm_padding'] = '20';
$this->image_lib->initialize($config);
if(!$this->image_lib->watermark())
{
echo $this->image_lib->display_errors();
}
}
Leider Geck, funktioniert nicht - JS ignoriert die Antwort (die Bilddaten nach wie vor und nicht ein codiertes Array) Ich denke, das Problem ist, Wenn dynamic_output aktiviert ist, gibt GD/CI ein Bild direkt zurück - das Rückgabe-Array wird nicht einmal übergeben. Schade, ich hatte wirklich gehofft, dass dies den Trick machen würde :( – Funk247
Setzen Sie einfach die $ config ['dynamic_output'] Einstellung oder setzen Sie sie auf false. (Ich habe den Code geändert.) – Zaragoli
Yup das funktioniert, es erstellt ein Bild auf dem Server, von dem ich hoffte, es zu vermeiden, aber das Bild zu löschen, sobald es dem Browser geliefert wurde, ist ohne Bedeutung. TVM Kumpel, ich habe Tage verschwendet, um zu versuchen, dass das funktioniert! – Funk247