Scale images button like on Meta

I’d like to have the same “scale-btn” functionality on my Discourse install as is here on Meta.

What exactly is that, a plugin? If so, does it have a name? Or it’s an unreleased version of Discourse?

I guess it’d doesn’t resample the images, just makes the browser display them at lower ratio, which is exactly what I’m looking for in all my Retina macOS screenshots. Inserting a 2x screenshot has always been a pain in Discourse, and this is exactly the perfect solution for it.

Not a plugin or theme component, an awesome new core feature @maja added :confetti_ball:

Just upgrade to tests-passed

6 лайков

Cool, it’s working now. One issue though is that now Retina images are used and encouraged, the built-in resizing should also take care of that.

What I mean by that is that I have a screenshot, which is 1206x514 in 2x size or 603x257 in 1x size. If I upload it to my forum (or here) it automatically gets resized to 689x294, which is a very odd size. Odd, because it’s bigger than 1x size would be and also because it’s not an integer resize, so it’s blurry.

Once it’s in this size, I cannot use the 50% button as it’d be super tiny / unreadable, so I need to use the blurry/oversized 689 size.

1 лайк

That’s the max allowed width of images in posts. Change it via your site settings.

Images will always be resized (thumbnailed) to max width allowed in posts, which is only logical … how can you have a 3000px wide image in a post?

1 лайк

OK, I’ve changed that setting to 1380. There are two bugs related to that:

  • (minor) Already uploaded images cannot be reuploaded again, it remembers them (from hash I guess) and only offers the 689 size.
  • The new scale buttons’s CSS go outside the view when this setting is used to allow wider images. Also the aspect ratio is wrong unless on 50% settings.

1 лайк

I introduced this issue yesterday (I didn’t test it with really tiny images). This will be fixed shortly.

4 лайка

Nah, the better solution is not to show resizing options for tiny images. Having it inside the image is better.

Its more annoying to change that cause we can not do that in CSS afaik, we would need more code to add a bypass here for short images.

This is such an edge case though not sure it is even worth thinking about…

image

^^^ works just fine … and is sort of useful cause I get retina.

You need.

  1. Ultra short image

  2. First thing in the post

For this to happen, its almost like one is trying to break the system to prove it is broken :blush:

4 лайка

But this is actually a huge image, just tiny horizontally. How would I click 50% otherwise?

OK, I just checked and a single line of text before indeed solves it.
Also I cannot replicate the aspect ratio bug today, even though I’m trying with the very same image and I haven’t done anything with the site.

The thought was that you wouldn’t really ever want to do that on images that are also very short.

Regardless, I’ve changed the implementation to move the controls under the image (which in retrospect is a smarter way to do it).

So if you update your instance again the problem will go away

5 лайков

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

Сценарий следующий:

  • Делается скриншот шириной примерно 500 пикселей на Retina-экране.
    • Результирующее изображение имеет ширину 1000 пикселей.
  • Загрузка в Discourse.
  • Изображение масштабируется до 690 пикселей и теперь выглядит больше оригинала.

Учитывая вышесказанное, кажется уместным добавить к существующим кнопкам 100% / 75% / 50% также опции «2x» или «3x». Это изменило бы приоритет масштабирования: сначала всегда стремиться к отображению изображения максимально близким к реальности.

В описанном сценарии, если бы была доступна опция «@2x», изображение отображалось бы как 500 пикселей и выглядело бы в натуральную величину, а не как 690 пикселей.

Это также относится к самим изображениям в лайтбоксе. Мне гораздо больше понравилось бы, если бы они открывались в состоянии Retina @2x или @3x.