2010-10-17 2 views
0

Мне нужно преобразовать .JPG, .JPEG, .JPE, .GIF и т. Д. В .PNG с моей веб-страницы PHP без использования ImageMagick. Есть идеи?Преобразование изображений с PHP без использования ImageMagick


Вот код, который я нашел, и я пытаюсь работать с:

<?php 
header("content-type: image/png"); 
$original_filename = $_HTTP_POST_FILES['uploaded_file']; 
imagepng($original_filename,'border/testconvert.png',9); 

?> 
+3

Только одно: GD. http://www.php.net/manual/en/book.image.php –

+0

Я просматривал документацию GD, но не мог понять. Я попробовал несколько примеров, которые я нашел в Интернете, я отредактирую свое оригинальное сообщение и добавлю код. –

+0

Уже задал вопрос: http://stackoverflow.com/questions/22259/how-do-i-resize-and-convert-an-uploaded-image-to-a-png-using-gd – malletjo

ответ

2

Кто нуждается в ImageMagick? Взгляните на встроенный image functions, используя gd.

EDIT Простой пример:

<?php 
$filename = "myfolder/test.jpg"; 
$jpg = @imagecreatefromjpeg($filename); 
if ($jpg) 
{ 
    header("Content-type: image/png"); 
    imagepng($jpg); 
    imagedestroy($jpg); 
    exit; 
} 

// JPEG couldn't be loaded, maybe show a default image 
?> 

Вы можете сделать больше с этим, такие как сжатие и качество изменение значения и т.д., сохранить вывод в файл вместо вывода в браузер и так далее - проверить docs для получения дополнительной информации :-)

Обратите внимание, что функции изображения вызывают предупреждения/уведомления и т. д., если есть проблемы с загрузкой изображения, следовательно, использование символа @ для подавления, в противном случае вы получите ложный вывод вместо данные изображения.

+1

gd также не всегда доступно. Вам нужно скомпилировать PHP с помощью '--with-gd'. –

+0

Я могу использовать GD, я использовал его с другими задачами манипуляции изображениями, которые у меня были. Я просто не могу понять, как конвертировать изображения. –

+0

И если вы разрешаете несколько типов файлов, вам нужно будет установить проверку, чтобы узнать, что такое расширение, и запустить переключатель для загрузки изображения на основе его типа файла или просто загрузить образ по умолчанию, если он не соответствует что-нибудь. – animuson

0
function jpg2png($originalFile, $outputFile, $quality) { 
    $image = imagecreatefromjpeg($originalFile); 
    imagepng($image, $outputFile, $quality); 
    imagedestroy($image); 
} 

Попробуйте что-нибудь подобное.

Скажите, если это работает!

Удача

+0

Это была та же логика (ish), которая использовалась в первом примере, и да .. она отлично работает! Но знаете ли вы, что вы конвертируете .BMP в .PNG? –

+0

Нет, но вы действительно должны начать задавать вопрос по этой теме, потому что это может быть действительно интересно. Удачи! – Trufa