jpg или png для UIImage — который более эффективен?

Ваш код document.getElementById('ordersdetailID_portion').value; возвращает string, но вы проверяете номер.

Кроме того, при каждом изменении необходимо сначала сбросить все опции disabled до false. Проверьте код ниже:

$('form').on('change', function() {
  $('#ordersdetailpartyloafweightID option').prop('disabled', false);
  var pl1 = document.getElementById('ordersdetailID_portion').value; // partyloafportionID

  if (pl1 == "1") {

    console.log('ID_portion:', pl1);
    $('#ordersdetailpartyloafweightID option[value="1"]').prop('disabled', false);
    $('#ordersdetailpartyloafweightID option[value="2"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="3"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="4"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="5"]').prop('disabled', true);

  } else if (pl1 == "2") {

    console.log('ID_portion:', pl1);
    $('#ordersdetailpartyloafweightID option[value="1"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="2"]').prop('disabled', false);
    $('#ordersdetailpartyloafweightID option[value="3"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="4"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="5"]').prop('disabled', true);

  } else if (pl1 == "3") {

    console.log('ID_portion:', pl1);
    $('#ordersdetailpartyloafweightID option[value="1"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="2"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="3"]').prop('disabled', false);
    $('#ordersdetailpartyloafweightID option[value="4"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="5"]').prop('disabled', true);

  } else if (pl1 == "4") {

    console.log('ID_portion:', pl1);
    $('#ordersdetailpartyloafweightID option[value="1"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="2"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="3"]').prop('disabled', true);
    $('#ordersdetailpartyloafweightID option[value="4"]').prop('disabled', false);
    $('#ordersdetailpartyloafweightID option[value="5"]').prop('disabled', false);

  }

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <select id="ordersdetailID_portion" name="child-ID_portion" class="form-control select2  select2-hidden-accessible" tabindex="-1" aria-hidden="true" required="">
    <option value="">** Veuillez saisir une option Nombre de sandwiches</option>
    <option value="4">100</option>
    <option value="1">30</option>
    <option value="2">60</option>
    <option value="3">80</option>
  </select>

  <select id="ordersdetailpartyloafweightID" name="child-partyloafweightID" class="form-control select2  select2-hidden-accessible" tabindex="-1" aria-hidden="true" required="">
    <option value="">** Please choose the appropriate weight</option>
    <option value="2">1 Kg</option>
    <option value="3">1.5 Kg</option>
    <option value="4">2 Kg</option>
    <option value="5">2.5 Kg</option>
    <option value="1">600 g</option>
  </select>
</form>

9
задан Stephen Petschulat 29 April 2009 в 04:53
поделиться

6 ответов

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

Когда-то около выпуска программного обеспечения 2.2 Apple внесла изменение в код записи PNG, так что это занимает много раз больше, чтобы сохранить данные PNG из некоторых изображений. В итоге мне пришлось перейти на сохранение в формате JPEG, потому что у моего приложения был тайм-аут при попытке сохранить изображения при выходе.

Кроме того, у вас возникнут проблемы, поскольку сохранение в формате PNG не сохраняет «ориентацию» информация в UIImage, поэтому снимок, сделанный в книжной ориентации встроенной камерой, будет отображаться повернутым после сохранения и перезагрузки.

10
ответ дан 4 December 2019 в 06:17
поделиться

Используйте PNG везде, где это возможно.

0
ответ дан 4 December 2019 в 06:17
поделиться

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


Затем STOP WHAT ВЫ ДЕЛАЕТЕ ПРЯМО СЕЙЧАС и сначала выясните, действительно ли это является причиной аварии. В противном случае есть очень хороший шанс, что вы будете преследовать не ту проблему здесь, исправляя проблему с памятью, которая не существует, игнорируя реальную причину сбоя. Если вы хотите исправить сбой, начните с , выяснив, что вызвало сбой . Отслеживание того, что, «предположительно», является проблемой, - это трата времени и усилий.

25
ответ дан 4 December 2019 в 06:17
поделиться

Это зависит от того, с каким типом изображений вы имеете дело. Если вы имеете дело с фотографическими изображениями, JPEG почти всегда будут меньше PNG, без заметной потери деталей, как это видно человеческому глазу.

И наоборот, если вы имеете дело с очень нефотосъемочными изображениями, такими как что касается элементов графического интерфейса или изображений с большими блоками сплошных цветов, то PNG и JPEG будут сопоставимы по размеру, но PNG будет сохранять без потерь, тогда как JPEG будет с потерями и будет иметь очень видимые артефакты. Если у вас есть действительно простое изображение (например, очень большие блоки постоянных цветов), тогда PNG, скорее всего, будет намного меньше, чем JPEG, и снова не будет иметь никаких артефактов сжатия.

Сохранение изображения в формате PNG или JPEG не должно занимать слишком много переходной памяти. Когда изображение находится в памяти, оно, как правило, хранится в памяти без сжатия, поэтому его можно очень быстро выводить на экран, в отличие от необходимости распаковывать его каждый раз, когда вы хотите его визуализировать. По сравнению с размером несжатого изображения, размер дополнительного временного хранилища, которое вам нужно сжать, очень мал. Если вы можете поместить несжатый образ в память, вам не нужно беспокоиться об объеме памяти, используемой при его сжатии.

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

5
ответ дан 4 December 2019 в 06:17
поделиться

У меня нет точных данных, но я бы предположил, что PNG предпочтительнее, потому что Apple, кажется, использует PNG практически везде в iPhone OS.

Однако, если вы У вас уже есть код, настроенный для написания PNG, не должно быть слишком сложно изменить его для написания JPEG, не так ли? Просто попробуйте оба метода и посмотрите, какой из них работает лучше.

0
ответ дан 4 December 2019 в 06:17
поделиться

Ваши сбои могут быть вызваны известной утечкой памяти в UIImagePickerController.

Это должно помочь вам исправить это.

1
ответ дан 4 December 2019 в 06:17
поделиться