Я хотел бы получить список методов, который имеет общий метод внутри себя. даже если разные методы не называются [дубликат]

Если вы не заботитесь об аспекте рациона (т. е. хотите, чтобы изображение было привязано к определенному размеру), вот упрощенный ответ

// for jpg 
function resize_imagejpg($file, $w, $h) {
   list($width, $height) = getimagesize($file);
   $src = imagecreatefromjpeg($file);
   $dst = imagecreatetruecolor($w, $h);
   imagecopyresampled($dst, $src, 0, 0, 0, 0, $w, $h, $width, $height);
   return $dst;
}

 // for png
function resize_imagepng($file, $w, $h) {
   list($width, $height) = getimagesize($file);
   $src = imagecreatefrompng($file);
   $dst = imagecreatetruecolor($w, $h);
   imagecopyresampled($dst, $src, 0, 0, 0, 0, $w, $h, $width, $height);
   return $dst;
}

// for gif
function resize_imagegif($file, $w, $h) {
   list($width, $height) = getimagesize($file);
   $src = imagecreatefromgif($file);
   $dst = imagecreatetruecolor($w, $h);
   imagecopyresampled($dst, $src, 0, 0, 0, 0, $w, $h, $width, $height);
   return $dst;
}

Теперь давайте обработаем загружаемую часть. На первом этапе загрузите файл в нужный каталог. Затем вызывается одна из вышеперечисленных функций на основе типа файла (jpg, png или gif) и передает абсолютный путь вашего загруженного файла, как показано ниже:

 // jpg  change the dimension 750, 450 to your desired values
 $img = resize_imagejpg('path/image.jpg', 750, 450);

Возвращаемое значение $img является ресурсным объектом , Мы можем сохранить новое местоположение или переопределить оригинал, как показано ниже:

 // again for jpg
 imagejpeg($img, 'path/newimage.jpg');

Надеюсь, это поможет кому-то. Проверьте эти ссылки для более подробного изменения размера Imagick :: resizeImage и imagejpeg ()

10
задан Nathan Koop 27 April 2012 в 20:31
поделиться

4 ответа

Если вы просто ищете ссылки для информационных целей, Reflector имеет эту функцию.

http://www.red-gate.com/products/reflector/

2
ответ дан Chris Stavropoulos 23 August 2018 в 19:10
поделиться

Это невозможно сделать с отражением. Отражение - это инструмент для проверки метаданных и сборок. Чтобы найти все ссылки на данный метод / тип, вам нужно будет проверить базовый IL сборки. Reflection имеет очень ограниченные возможности IL (просто возвращает его как массив байтов). Вам нужно будет самостоятельно проверить этот поток байтов, чтобы собрать любой контекст о том, на что он ссылается.

5
ответ дан JaredPar 23 August 2018 в 19:10
поделиться

Это не то, что доступно непосредственно через отображение времени выполнения в определенном классе. Вам нужно будет исследовать все дерево исходного кода или полученный IL, чтобы определить, являются ли ссылки на конкретный метод с тем же именем правильной перегрузкой и сигнатурой для метода, который вы пытаетесь найти ссылки.

Кроме того, без дополнительной работы вы никогда не найдете ссылок на конкретный метод, который сам вызывается через отражение. (Это одна из причин, почему запутывание такого кода является сложным и подверженным ошибкам.)

2
ответ дан John Feminella 23 August 2018 в 19:10
поделиться

Microsoft выпустила проекты Common Compiler Infrastructure под лицензией с открытым исходным кодом. Эти проекты направлены на поддержку многих функций, связанных с компилятором, включая анализ сборок, на который вы ссылаетесь. Документация ограничена, поэтому вам необходимо иметь полное понимание ECMA-335 (Common Language Infrastructure), чтобы эффективно использовать ее для ваших целей.

Нет волшебства примеры кода. Это большая и довольно сложная задача, когда вы будете в основном на своем пути.

0
ответ дан Sam Harwell 23 August 2018 в 19:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: