How to handle correctly converting images to thumbnails - thumbnails

I'm building out an admin area for an ecommerce site where the user can create a new product and upload multiple images to be used for the product. I have a table that lists all of the products, each row shows the first image returned from the database. I can scale down a large image to 100px x 100px but the user is still downloading a big image, not a true thumbnail.
I see two ways of doing this:
1. I can make the user choose which img will be the thumbnail so that the regular img is upload and also a smaller version of the file.
2.I can create thumbnails for every img that is uploaded and append to the filename of the thumbnail img so that I can return the first image that ends with a certain string.
Is there a more elegant way to do this or am I on the right track?

Create a cache directory, then create a script called something like image.php. Link your images like this
<img src="image.php?path=images/img.png&width=100&height=100">
Then in image.php, it should first check in the cache directory if the file exists.
Call the file "img.png&width=100&height=100" and save it in the cache directory. That way you can easily check if it exists, but there is enough entropy for someone to change it to width=101 and height = 101 so that the image will be regenerated.
Each time you create the thumbnail, just store it in the cache directory. If it exists, do a header() call and an echo file_get_contents() and then die().

Related

Flutter - Cache_network_image. I replaced old image with new image with same name. But it doesn't affect on app

I am new to flutter. I have used library of "cache_network_image" which help to show images from the internet and keep them in the cache directory. In first load, it download the images and stored in cache directory(cache manager) and displayed in app.
Example. I have an image(test.png), it downloaded from network and stored in cache successfully. But If I replace test.png image with new image with same name of test.png. So It should display new image
with that same name(test.png). It's displaying only old image.
The cache_network_image library not working properly. Please share your thoughts.
no, it doesn't care whats in the end of the url, all it cares is whether file exists locally, if it doesn't then only it'll fetch from the url, if you want to refetch the updated image you have clear the cache, delete the app data or if you want to clear programmatically
var cm = DefaultCacheManager();
cm.emptyCache();

CQ5 DAM asset: Not able to create thumbnail at renditions tab

When I upload an image to the DAM and generate renditions, I sometimes find that rendition's thumbnail is not able to be created.
I tried to take a look at http://localhost:4502/etc/workflow/models/dam/update_asset.html but I don't know which step generate the rendition's thumbnails. Is it possible to fix this?
The "Thumbnail creation" process step (part of the http://localhost:4502/cf#/etc/workflow/models/dam/update_asset.html) creates the thumbnail renditions of the uploaded Digital asset in DAM.
Its common to see that the original document does not have a thumbnail displayed in the DAM renditions console. As long as you are able to open up and view the original version of the document and the renditions in their respective consoles in DAM, I think you are good to go!
If you click on the original rendition, the file will open without any issue.
In order to avoid long loading times, if the image is more than 300KB of size then the document icon is shown instead of a full image in case of original rendition. Try uploading a file of less than 300KB in size and you can see the thumbnail in case of original rendition as well.
The rendition is getting generated fine, it is just not displayed on the UI. AEM 6 will be touch UI enabled and in the new UI, you will be able to see the rendition for "original" image as well.

How can resize the image with user defined names with user defined folder in typo3

I have a typo3 site.
Where i need to resize the images with user defined names and then store it in a folder
Any idea how can we do this ?
Maybe this TypoScript option helps:
config.meaningfulTempFilePrefix = 1
Now when resizing an image and by this storing the resulting file in typo3temp the filename won't be gibberish only but still containing the original filename.
http://wiki.typo3.org/TSref/CONFIG

Why does one of my pngs have a query string attached?

I'm not using any WP cache plug ins. I've noticed that only one png out of the other pngs (and other images) I have on my WP site has a query string attached to it when I look at in Chrome dev tools. It's actually downloaded twice - with and without query string.
The other odd this is that Chrome Dev tools says that the intiator for the png with query string is jQuery. I just include jQuery from Google's CDN, so I'm not changing anything.
Any ideas to why just one of my pngs (why this one?) has a query string attached? Here's what it looks like:
<img src="http://www.mysite.com/wp-content/themes/myTheme/images/slide1Btn.png?1369071380764" alt="">
Please let me know if I haven't included enough information.
Edit
This png is a button on one of the slides I have in a slideshow. I use http://archive.slidesjs.com/ to generate the slideshow. The png images are part of the HTML markup and not generated by the script, however I did find this line in the slides.js code:
// gets image src, with cache buster
var img = control.find('img:eq(' + start + ')').attr('src') + '?' + (new Date()).getTime();
I would like to just have the png load once and just be retrieved from the cache on reloads - like each of the pngs will do on subsequent slides in my slideshow. I'm perplexed as to why it only happens to this png.
It might either be :
some argument for a script that dynamically generates or resizes or processes the image (it does not matter that the url has a .png extension, that doesn't necessarily mean that a png file is served statically)
a "cache breaker" - or "cache buster". This can be used to prevent the browser (sometimes also the server) to get the image from a cache, and force it to get it fresh from the server.
Because in this case this looks as a timestamp (unix epoch in milliseconds), I'd bet for the later.
wordpress generates many of the images dynamically, meaning when you access the png you are calling a server page that generates the png dynamically choosing between different images or based on the query string parameters, like size for exmaple.
200px width image.
http://mysite.com/wp-content/uploads/2013/05/Giant_water_bugs_on_plate.png&w=200&h=446&zc=1&q=100
vs
600px width image
http://mysite.com/wp-content/uploads/2013/05/Giant_water_bugs_on_plate.png&w=800&h=446&zc=1&q=100

AFNetworking stop downloading images with same url

In my app I download images and insert them into a table view. In my case there could be several same images with identical URLs. To reduce the server overloa, I'd like to download each image only once. Is there built-in support for this? Or what is the best way to achieve my goal?
Create a NSMutableDictionary and as you download an image and place it in the table view, add the URL as the key in the dictionary and the table view row as the value. Before you download an image, check to make sure that the dictionary doesn't already contain the URL (if ([[dictionary allKeys] containsObject:url]). If it doesn't, download the image. If it does, then grab the row number and make the empty row's image the same as the image of the row in the dictionary.
http://example.com/image => 1