Генерирование изображений-заглушек / Хабр
Сегодня мне кинули ссылку на прикольный сервис для быстрого генерирования изображений-заглушек. Может пригодиться для html-верстки. На мой взгляд, это удобно тем, кто и так использует заглушки — экономит время при вёрстке, т.к. сами заглушки уже готовы. Можно цвета/размеры подбирать, меняя только числа/буквы в коде, не отвлекаясь на сам файл картинки — и сразу видеть эффект. И сами размеры видеть написанными, если нужно, чтоб к коду не возвращаться для проверки. Или вместо размеров можно текст добавить, чтоб всегда знать, для чего эта заглушка (типа «Бан(н)ер» или там «Лого», или «Фотография»).На сервисе не нужна регистрация — и вообще на сайт можно не заходить, чтобы его использовать. Пишете сразу у себя в коде, например:
<img src=»http://placehold.it/350×50″ />и получаете:
Update. Благодаря усилиям k0rv1n, найден вариант этого сервиса, только лучше 🙂
Во-первых, там поддерживается кириллица.
Автор dummyimage.com — тот же Russell Heimlich, что и у placehold.it. У placehold.it есть ещё один автор, но будем считать, что он делал дизайн (дизайн там правда круче, но видимо как раз из-за понтового шрифта Unicode и не выходил).
Примеры (см. под хабракатом) я поменял с placehold.it на dummyimage.com, раз уж он функциональнее…
Итак, примеры:
1. Для квадратной заглушки достаточно одного числа:
<img src=»http://dummyimage.com/120» />
<img src=»http://dummyimage.com/100» />
<img src=»http://dummyimage.com/80» />
2. Меняем цвет (всегда должен идти после размера, иначе не сработает):
<img src=»http://dummyimage.com/150×60/c0c0c0» />Результат:
<img src=»http://dummyimage.com/150×60/00dd00» />
<img src=»http://dummyimage. com/150×60/a6a6ff» />
3. Меняем формат (добавляем расширение к любой части url-а; поддерживается 3 формата — gif, jpg/jpeg, png):
<img src=»http://dummyimage.com/150×60/99ccccРезультат:.gif» />
<img src=»http://dummyimage.com/150×60.jpg/99cccc» />
<img src=»http://dummyimage.com/150×60/99cccc.jpeg» />
<img src=»http://dummyimage.com/150×60.png/99cccc» />
4. Добавляем текст (вместо пробела — плюс):
<img src=»http://dummyimage.com/150×60/99cccc.gif&text=The+image!» />Результат:
<img src=»http://dummyimage.com/150×60/99cccc.jpg&text=The+image!» />
<img src=»http://dummyimage.com/150×60.png/99cccc&text=The+image!» />
<img src=»http://dummyimage.com/150×60.png/99cccc&text=Кириллица» />
5. Меняем цвет текста (он идёт после цвета самой заглушки):
<img src=»http://dummyimage. com/150×60/99cccc/ffffff.gif&text=The+image!» />Результат:
<img src=»http://dummyimage.com/150×60/99cccc.jpg/0b0b0b&text=The+image!» />
<img src=»http://dummyimage.com/150×60.png/99cccc/aa00aa&text=The+image!» />
P.S. Кто может предложить адекватный перевод слова «плейсхолдер«? nooze предложил «заглушку» 🙂
P.P.S. Авторы сервиса
Картинка заглушка. Мебельная тематика • фриланс-работа для специалиста • категория Дизайн сайтов ≡ Заказчик Ирина Поповская
6 из 6
проект завершен
публикация
прием ставок
утверждение условий
резервирование
выполнение проекта
проект завершен
Здравствуйте. Необходимо подобрать варианты картинок с необходимым текстом по мебельной тематике. Картинка будет устанавливаться на сайт перед открытием.
Картинка заглушка. Мебельная тематика
Качество
Профессионализм
Стоимость
Контактность
Сроки
Рекомендую. Работа выполнена в течении часа!
Отзыв фрилансера о сотрудничестве с Ириной Поповской
Картинка заглушка. Мебельная тематикаОплата
Постановка задачи
Четкость требований
Контактность
Начнём все хорошо. Оперативно завершился проект. Буду рад снова помочь.
Василь Білокінський | Сейф
- Ставки 15
дата онлайн рейтинг стоимость время выполнения
- фрилансер больше не работает на сервисе
Победившая ставка1 день300 UAH Победившая ставка1 день300 UAHИрино Добрый день!
Если я правильно понимаю задание, то сделаю сегодня.
Пишите в частном — поговорим и начнем
Ірино, доброго дня!Якщо я правильно розумію завдання, то зроблю сьогодні.
Пишіть в приват — обговоримо і почнемоПоказать оригинал
Перевести
5173
84 0
2 дня500 UAHDmytro S. 2 дня500 UAHЗдравствуйте, Ирина!
Подберу картинку (фото) для заглушки.
Работаю в Figma, Adobe Photoshop.
Обсудим подробности?Мое портфолио:
Freelancehunt
Dribbble- 2 дня300 UAH 2 дня300 UAH
Здравствуйте!
Могу приступить к работе уже сейчас, подберу и сделаю картинки быстро и качественно. Есть многолетний опыт в этой сфере.
Пишите, обсудим детали! Буду рада сотрудничеству с вами. ставка скрыта фрилансером
- 1 день200 UAH 1 день200 UAH
С удовольствием выполню.
Могу подобрать картинки.
Могу нанести на картинки тексты.
Срок выполнения 1 день. Добрый вечер. Сделаю картинки- заглушки. Портфолио Freelancehunt
- 1 день200 UAH 1 день200 UAH
Привет!
Веду дизайн cоц. сетей. Ссылки отправлю в личные сообщения. Делаю рекламу для таргета и гугл рекламы. Примеры моих работ есть в портфолио.
Портфолио:
https://inlnk.ru/bnAMe Готов приступить прямо сейчас!
Буду рад сотрудничать.
Behance- 1 день300 UAH 1 день300 UAH
Здравствуйте, интересный проект, буду рад сотрудничать
Мое портфолио — Behance
- 1 день200 UAH 1 день200 UAH
Здравствуйте Ирина!
С радостью разработаю для вас картинку
Уверяю вас вы останетесь довольны и мы продолжим сотрудничатьС нетерпением жду вашего ответа
- фрилансер больше не работает на сервисе
- 1 день250 UAH 1 день250 UAH
Добрый день!
Готова подобрать варианты картинок сегодня.
Работаю в Figma.
Мои работы: Freelancehunt ставка скрыта фрилансером
ставка скрыта фрилансером
1 год назад
160 просмотров
- дизайн
- Web-дизайн
- дизайн сайта
- графический дизайн
ruby on rails — заглушить URL-адрес изображения и вернуть изображение
спросил
Изменено 9 месяцев назад
Просмотрено 2к раз
Как заглушить вызов URL-адреса, например http://www. example.com/images/123.png, и вернуть изображение с именем 123.png?
Я использую Rails 3.2, Carrierwave. Я пробовал Fakeweb, но немного запутался.
- ruby-on-rails
- Carrierwave
- fakeweb
После нескольких часов исследований оказалось, что все просто:
FakeWeb.register_uri(:get, string_or_regxp_of_uri, тело: SupportFiles.uploaded_file("square.jpg"), content_type: 'изображение/jpg')
Моя проблема сложнее:
Я тестирую аватар FB и получил самое белое расширение
Приведенный выше код НЕ будет работать, так как расширение отсутствует
(URL аватара FB: https://graph.facebook.com/123 /картинка)
Но настоящий аватар FB будет перенаправлять на CDN или что-то с расширением
Так что вам нужно добавить еще одну заглушку:
# Зарегистрируйте поддельное удаленное изображение fake_avatar_uri = "https://graph.facebook.com/fake_avatar.jpg" # Перенаправление на поддельный uri FakeWeb. register_uri(:get, %r|https://graph\.facebook\.com/|, статус: ["301", "Перемещено навсегда"], местоположение: fake_avatar_uri) # Подача поддельного изображения для поддельного uri FakeWeb.register_uri(:get, fake_avatar_uri, тело: SupportFiles.uploaded_file("square.jpg"), content_type: 'изображение/jpg')
Модуль SupportFiles (не написанный мной: P):
требуется 'rack/test/uploaded_file' модуль SupportFiles расширить ActiveSupport::Concern включено делать пусть(:an_image) сделать open_file("квадрат.jpg") конец конец def open_file(имя файла) File.open(support_file_path(имя файла)) конец # идея украдена из ActionDispatch::TestProcess#fixture_file_upload def загруженный_файл (имя файла) Rack::Test::UploadedFile.new(support_file_path(имя файла)) конец функция_модуля : загруженный_файл защищенный def support_file_path (имя файла) Rails.root.join("spec/support/files", имя файла) конец module_function :support_file_path конец
Чтобы имитировать URL-адрес внешнего изображения с файлом, вы можете заглушить запрос с любым объектом IO
, например:
описать '#create' do он «создает элемент» io_object = fix_file_upload('images/1. png', 'image/png').tempfile.to_io stub_request(:get, 'http://www.example.com/images/123.png') .to_return (статус: 200, тело: io_object, заголовки: {}) параметры = { имя: "Хороший предмет", remote_file_url: 'http://www.example.com/images/123.png') } api_post (путь к элементам, параметры) конец конец
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаОбязательно, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
reactjs — Импорт изображений ломает шуточный тест
спросил
Изменено 5 месяцев назад
Просмотрено 63к раз
Компоненты In React, импортирующие активы (например, импортировать логотип из «../../../assets/img/logo.png) выдает такую ошибку
({«Объект.»:функция(модуль,экспорт,требовать,__имя_каталога,__имя_файла,глобальный,шутка){�PNG
SyntaxError: Неверный или неожиданный токен в ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:305:17)
моя конфигурация шутки
"шутка": { "testRegex": ".*\\.spec\\.js$", "расширения_файла_модуля": [ "ДжС", "JSX", "жсон" ], "каталоги модулей": [ "узловые_модули", "источник", "ресурсы" ], "moduleNameMapper": { "\\. (jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$/": "/ __mocks__/fileMock.js", "\\.(css|less|scss)$": " /__mocks__/styleMock.js" }, "многословный": правда, "залог": правда }
что я упустил?
- реакция
- тестирование
- веб-пакет
- jestjs
Когда вы импортируете файлы изображений, Jest пытается интерпретировать двоичные коды изображений как .js, поэтому возникают ошибки.
Единственный выход — имитировать ответ по умолчанию каждый раз, когда шутка видит импорт изображения!
Как нам это сделать?
- сначала вы говорите Jest запускать фиктивный файл каждый раз, когда встречается импорт изображения. вы делаете это, добавляя приведенный ниже ключ в файл package.json
"шутка": { "moduleNameMapper": { "\\.(jpg|ico|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/mocks/fileMock. js", "\\.(css|less)$": " /mocks/fileMock.js" } }
Примечание : если у вас уже есть ключ "Jest"
, просто добавьте в него дочерний элемент "moduleNameMapper"
- , наконец, создайте папку
mocks
в корне и создайте 9 0042 файлMock.js файл внутри него. заполните файл фрагментом ниже
модуль.экспорт = '';
Примечание : Если вы используете es6, вы можете использовать export default '';
, чтобы избежать флага Eslint
, когда вы закончите с вышеуказанными шагами, вы можете перезапустить тест и все готово.
Примечание . не забудьте добавить различные расширения ваших файлов изображений в moduleNameMapper
, чтобы их можно было высмеивать.
Надеюсь, я смог помочь. #ваше здоровье!
6 Для всех, кто занимается этой проблемой. Вы должны установить npm install --save-dev identity-obj-proxy
, чтобы получить необходимые зависимости.
"шутка": { "moduleNameMapper": { ".+\\.(css|стиль|меньше|sass|scss|png|jpg|ttf|woff|woff2)$": "identity-obj-proxy" } }1
У меня была такая же проблема, и я решил ее следующим образом:
-
npm install -D jest-transform-stub
- Затем в package.json я добавил следующее преобразование:
"шутка": { ... "преобразовать": { ... ".+\\.(css|scss|png|jpg|svg)$": "шутка-преобразование-заглушка"0
У меня была такая же проблема! Я не уверен, что это тот же случай, что и в исходном вопросе, но для меня шутка все еще каким-то образом пыталась загрузить изображения как JS и пыталась их проанализировать, в то время как у меня были файлы, соответствующие расширениям изображений, сопоставленным с макетом в 9@/(. *)’:
‘<корневой_каталог>/src/$1′,
‘\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$’:
‘ Для меня оказалось, что когда я импортировал изображения в свои компоненты, путь был примерно таким: ‘@/assets/someImage.jpg’. Однако кажется, что это сначала будет соответствовать первому регулярному выражению, охватывающему 9@/(.*)\\.(?!jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$’ :
‘<корневой_каталог>/src/$1′,
‘.*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$’:
‘ Добавление следующей строки в файл jest. config.js помогло мне пройти тест, Пример: Если вы хотите использовать jest с веб-пакетом, вам нужно явно настроить его соответствующим образом. Взгляните на это руководство здесь: https://jestjs.io/docs/webpack Для тех, кто использует создать файл с именем , а затем добавьте эти коды к 9.+\\.(bmp|gif|jpg|jpeg|mp4|png|psd|svg|webp)$’: require.resolve(
‘../node_modules/react-native/jest/assetFileTransformer.js’,
),
}, Если вы не используете React Native, необходимо создать файл https://github.com/facebook/react-native/blob/main/jest/assetFileTransformer.js в своем проекте и изменить путь на и добавьте в jest.config.js следующее: это сработало для меня. У меня ничего не сработало, поэтому я заменил
«крепление» с «мелководьем» везде, и теперь оно работает нормально. "\\.(jpg|jpeg|png)$": "identity-obj-proxy",
moduleNameMapper: {
"\\.(css)$": "identity-obj-proxy",
"\\.(jpg|jpeg|png)$": "идентификация-obj-прокси",
},
Vue test util
в Nuxt 2
и столкнулся с вопросом или этой проблемой ({"Object.
fileTransformer.js
в test/unit
, а затем добавьте следующие коды: const path = require('path')
модуль.экспорт = {
процесс (источник, имя файла, конфигурация, параметры) {
return 'module.exports = ' + JSON. stringify (path.basename (имя файла)) + ';'
},
}
require.resolve
npm install --save-dev identity-obj-proxy
moduleNameMapper: {
"\\.(css)$": "identity-obj-proxy",
"\\.(jpg|jpeg|png)$": "идентификация-obj-прокси",
},
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.